私は数時間頭の上に座っていましたが、この奇妙な問題の解決策をまだ見つけていません. 私の要件は、ヘッダーとコンテンツを含むテーブル レイアウトを動的に作成する必要があるということです。
これは、テーブル レイアウトを動的に生成するために使用するコードです。
TableLayout tableLayout = (TableLayout)findViewById(R.id.tabContentLayout);
tableLayout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT));
tableLayout.removeAllViews();
for(int i=0;i<rows.length;i++){
Log.d("Rows",rows[i]);
String row = rows[i];
TableRow tableRow = new TableRow(getApplicationContext());
tableRow.setBackgroundResource(R.drawable.cell_shape);
tableRow.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT, TableLayout.LayoutParams.WRAP_CONTENT));
final String[] cols = row.split(";");
Log.i(LOG_CLASS, "<<---- Columns count : " + cols.length + " ---->>");
for (int j = 0; j < cols.length; j++) {
final String col = cols[j];
TextView columsView = new TextView(getApplicationContext());
columsView.setBackgroundResource(R.drawable.cell_header);
columsView.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT));
columsView.setTextColor(color.white);
columsView.setTextSize(TypedValue.COMPLEX_UNIT_SP,15);
columsView.setGravity(Gravity.CENTER);
columsView.setText(String.format("%7s", col));
Log.d("Cols", String.format("%7s", col));
tableRow.addView(columsView);
}
// tableLayout.addView(tableRow,new TableLayout.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT,TableRow.LayoutParams.WRAP_CONTENT));
tableLayout.addView(tableRow);
}
tableLayout.requestLayout();
行は;で区切られたエントリを含みます。String[]
例:Apple;10/25/2013;10/25/2014;Srivatsa
最新の更新 : 実際には、コンテンツ ビューはエミュレーターでかすかに表示されます(ただし、これは電話では表示されません)。今必要なのは、テキストを UI で判読できるようにすることだけです。