0
我有一個Java應用程序,它將動態添加到容器面板如下。android:爲組件動態添加組件
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指出。
我用的LinearLayout爲「containerPanel」和「BoarPanel」爲好。我的活動已經開始並顯示視圖。但後來當我想在用戶單擊按鈕時向容器添加更多視圖時,它會掛在addView上,這意味着它可能是不可能的。我還想在用戶單擊另一個按鈕時清除容器中的所有視圖。是否有可能在android中做這樣的事情? – user1382302
你所描述的應該是完全可能的。我認爲問題不在您提供的代碼中。這是否都發生在主(UI)線程中? LogCat中是否有任何異常或消息可能提供更多信息?如果是這樣:請用它更新你的文章,它會幫助我們/他人解決你的問題。 – gleerman
非常感謝!事實上,我用線程代碼來解決問題。但我想知道爲什麼它與java代碼一起工作,即使我沒有對它執行invokeLater。在我添加runOnUIthread後,android代碼工作。 – user1382302