0

次のように、コンテナパネルに動的にビューを追加するJavaアプリがあります。

void addBoard(int ID) {
    BoardPanel p = new BoardPanel(myManager,ID);
    setAutoLayout();
    containerPanel.add(p);
    containerPanel.repaint();
}

これをAndroidアプリに変換しようとすると、addViewが呼び出されたときにハングします。何が問題ですか?ユーザーが必要に応じて1000ビュー(BoardPanels)を追加できるため、XMLレイアウトを使用できないことに注意してください。

void addBoard(int ID) {
    BoardPanel p = new BoardPanel(context,myManager,ID);
    Log.i("Info", "Going to add view");
    containerPanel.addView(p);
    Log.i("Info", "Added");
    containerPanel.postInvalidate();
}

ありがとう


更新:Aegonisが指摘したように、問題はスレッド化されたコードが原因のようです。

4

1 に答える 1

1

ViewGroup.addView()を試してください(FrameLayout、GridLayout、LinearLayout、...はすべてViewGroupの拡張機能です)。

たとえば、ビューを最初の既存のビューの後に挿入する場合は、次のようにします。

LinearLayout layout = (LinearLayout) findViewById(R.id.layoutID);
layout.addView(viewToBeAdded, 1);
于 2012-05-08T14:48:24.100 に答える