0

テーブルに 5 つの異なるタイプのセルを識別子と共に作成し、タイプに応じて指定されたデータに従って適切にロードしたいですか? TableLayout 内で TableRow を作成することはオプションの 1 つと思われますが、タイプに応じて tableRows を動的に作成する方法は?

事前にサンクス。

4

1 に答える 1

0

実行時間のタイプを検出できますか? はいの場合は、スイッチまたは if else 構造を使用して簡単に行う必要があります。

行タイプに応じて実行時に XML リソースをインフレートするには、次のようにします。

((LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE))
.inflate(layoutId, yourTableLayout, true);

リソースを拡張する前に適切な layoutIdを設定してから続行します。パラメータyourTableLayouttrueは私の推測にすぎません。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));

簡単で速いようですが、私はそれをテストしていません。

于 2010-08-19T11:07:03.267 に答える