テーブルに 5 つの異なるタイプのセルを識別子と共に作成し、タイプに応じて指定されたデータに従って適切にロードしたいですか? TableLayout 内で TableRow を作成することはオプションの 1 つと思われますが、タイプに応じて tableRows を動的に作成する方法は?
事前にサンクス。
実行時間のタイプを検出できますか? はいの場合は、スイッチまたは if else 構造を使用して簡単に行う必要があります。
行タイプに応じて実行時に XML リソースをインフレートするには、次のようにします。
((LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE))
.inflate(layoutId, yourTableLayout, true);
リソースを拡張する前に適切な layoutIdを設定してから続行します。パラメータyourTableLayoutとtrueは私の推測にすぎません。LayoutInflaterのドキュメントを確認し、ニーズに合ったインフレート方法を選択してください。
TableRows を動的に作成するには、このチュートリアルが役立つ場合があります:プログラムで TableLayout 内に TableRow 行を作成する
基本的:
1- TableLayout を取得して TableRow を作成する
// Get the TableLayout
TableLayout tl = (TableLayout) findViewById(R.id.maintable);
TableRow tr = new TableRow(this);
tr.setId(100+current);
tr.setLayoutParams(new LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
2-追加する要素を作成する
TextView labelTV = new TextView(this);
labelTV.setId(200+current);
labelTV.setText(provinces[current]);
labelTV.setTextColor(Color.BLACK);
labelTV.setLayoutParams(new LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
tr.addView(labelTV);
3- TableRow を TableLayout に追加する
// Add the TableRow to the TableLayout
tl.addView(tr, new TableLayout.LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
簡単で速いようですが、私はそれをテストしていません。