1

文書化された例の 1 つを使用してテーブル レイアウトを試します。MainActivityまでの次のコードだけを持つベアボーンでsetContentView(R.layout.activity_main)は、エミュレーターはテーブル レイアウトを正常に表示しました。次に、行の後に行を追加するsetContentViewと、そのアクションが発生しました:

  1. エミュレーターにレイアウトが表示されない (setContentView 行を実行した後でも、コードが tableLayout 宣言行のブレークポイントで停止した場合)
  2. 最初の行でエラーgetChildCount()

MainActivity のコードを以下に示します。

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    TableLayout tableLayout = null;
    int s = tableLayout.getChildCount(); 

    for(int n = 0; n < s; ++n) {
        TableRow row = (TableRow)tableLayout.getChildAt(n);
        int t = row.getChildCount();

}

私は何を逃したのですか?事前にご協力いただきありがとうございます。

4

2 に答える 2

0

TableLayout tableLayout次のように初期化する必要があります。

TableLayout tableLayout = findViewById(R.id.whatever_id_you_gave_to_the_tablelayout);
于 2012-11-11T10:41:48.807 に答える
0

Luksprogが言ったように、tableLayoutはnullなので、null値のgetChildCountを取得するにはどうすればよいですか。したがって、値を割り当てます。

TableLayout tableLayout = findViewById(R.id.your_table_layout_id);

ここで、your_table_layout_id は、xml ファイルでテーブル レイアウトに指定した ID です。

于 2012-11-11T10:46:14.867 に答える