0

テーブル レイアウト内のテーブル行にクエリ結果を追加しようとしています。java.lang.IllegalStateException: 指定された子にはすでに親がいます。最初に子の親で removeView() を呼び出す必要があります。私が電話するとき:

((ViewGroup)table.getParent()).removeView(table);

ヌル ポインター エラーが発生します。これに関するヘルプは素晴らしいでしょう。これが完全なコードです。

runOnUiThread(new Runnable() {


            public void run() {


                TableLayout table = (TableLayout)findViewById(R.id.resultstable);

                int count = response.getPropertyCount();
                System.out.println(count);
                for(int i = 0; i < count; i++)
                {
                    resultset.add(response.getProperty(i));
                }

                //TextView tv = new TextView(this);
                for(int j = 0; j < resultset.size(); j++)
                {
                    //if(resultset.get(j).toString() == "resFName")
                    //{

                        tv.setText(resultset.get(j).toString());
                        //((ViewGroup)row.getParent()).removeView(row);
                        row.addView(tv);
                        //((ViewGroup)table.getParent()).removeView(table);
                        table.addView(row);
                    //}


                }
            }
        });
4

2 に答える 2

0

同じビュー オブジェクトを親に追加しています。したがって、IllegalStateException が発生しています。子ビューを「id」属性で区切ると、追加に成功します。ハッシュコード メソッドを使用して、子ビューに異なる ID を与えることができます。

于 2013-05-28T14:38:29.933 に答える