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