문제가: 가 선택한 파일의 경로가 긴나 이름,그것은 인접 열을 사라집니다.
레이아웃 xml 만 위치 TableLayout
로 자리 표시자 Activity
자바 코드를 만드는 데 사용되는`TableRows 및망으로 필요합니다.
내가 무엇을 하려고: 사용자 클릭하면"추가"버튼을 선택한 파일에서 자신의 휴대 전화로 추가되는 경로와 파일이름을 TableRow
에 TableLayout
. 첫 번째 열에는(-)버튼을 선택적으로 제거하는 새로 추가되 TableRow 고,두 번째 열에 경로와 파일 이름입니다.
내가 무엇을 시도했다: 나는 느낌이 나는 모든 것을 시도한 프로그래밍 방식으로 조정하는 다양한 LayoutParams
나 Button
나 TextView
폭과 높이를 매개 변수를 설정하는 고정 폭...적어도 합니다. 하지만 아무것도 작동하는 것 같다. 을 때 저는 여기에서 검색을 위한 프로그래밍를 들어,그것은 항상 레이아웃 XML 코드,지 Java.
난 아직 종류의 배우 안드로이드 하지만 난에서 이 사람이 할 수 있는 점에서 저를 오른쪽 방향입니다. 아래는 일부 이미지는 코드를 만듭니다 TableRows 및 전망이다. 을 느낄 종류의 바보할 수 있습니다.
를 추가하기 전에
후에 추가
코드는 방법을 내는 단일 클래스를 만드는 Button
고 TextView
보 TableRow
고 TableLayout
. 첫 번째 메소드를 호출하여 다른 두을 만드는 광고 버튼 뷰
public static TableRow setupFilesTableRow(Context context, TableLayout table, String fileID, String fileName, boolean header) {
TableRow row = new TableRow(context);
if(header) {
row.addView(setupFilesAddRowButton(context, table));
row.addView(addRowTextViewToTable(context, fileName, true));
}else{
row.addView(setupDeleteRowButton(context, table));
for(int r=1; r < 2; r++){
row.addView(addRowTextViewToTable(context, fileName, false));
row.setClickable(true);
}
}
return row;
}
public static Button setupDeleteRowButton(Context context, TableLayout table){
Button btnDelete = new Button(context);
TableRow.LayoutParams trLayoutParams = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.MATCH_PARENT);
trLayoutParams.setMargins(3,3,3,3);
btnDelete.setBackgroundColor(Color.WHITE);
btnDelete.setLayoutParams(trLayoutParams);
btnDelete.setText("-");
btnDelete.setTypeface(Typeface.DEFAULT,Typeface.BOLD);
btnDelete.setGravity(Gravity.CENTER);
btnDelete.setPadding(5,5,5,5);
btnDelete.setOnClickListener(v -> {
deleteTableRows(table);
});
return btnDelete;
}
public static TextView addRowTextViewToTable(Context context, String value, boolean bold){
TextView tv;
tv = new TextView(context);
TableRow.LayoutParams trLayoutParams = new TableRow.LayoutParams();
trLayoutParams.setMargins(3,3,3,3);
tv.setText(String.valueOf(value));
if(bold) tv.setTypeface(null, Typeface.BOLD);
tv.setLayoutParams(trLayoutParams);
tv.setTextSize(12);
tv.setGravity(Gravity.CENTER);
tv.setPadding(8,8,8,8);
tv.setBackgroundColor(Color.WHITE);
return tv;
}