我是一个Android新手,请原谅我,如果这个问题很简单。
基本上我想把一个java项目移植到Android上。我的java应用程序中的视图组件根据模型动态更改。即,正在显示的模型可能需要n个复选框或n个单选框,具体取决于传递给视图的枚举类型。
在我的java显示中,这是通过嵌套循环实现的,每次将组件添加到屏幕时都带有n个数字。例如代码的简化版本:
if (type == TYPE.CHECKBOXES){
for (int i = 0; i < n ; i++){
add(new JCheckBox());
}}
每次按下一个按钮(每次更改类型)时,都会对视图进行处理。在android中我如何动态添加和删除组件,还是我需要为每种类型设置一个新视图?
非常感谢 萨姆
答案 0 :(得分:2)
就像在HTML / CSS中一样,您可以创建View元素并在运行时将它们添加到您的布局中。只是做一些谷歌搜索的例子。这是一个很好的博客示例:http://android-elements.blogspot.com/2011/05/adding-views-to-layout-dynamically.html
答案 1 :(得分:1)
在Java中,您可以使用JPanel
以及特定布局(即BorderLayout
,FlowLayout
等)管理布局。
您将组件添加到JPanel
,然后将JPanel
添加到父级或根布局。
一个小例子(如你所说:)
if (type == TYPE.CHECKBOXES){
for (int i = 0; i < n ; i++){
mayPanel.add(new JCheckBox());
}
}
在Android中,您使用具有特定子类布局设计的ViewGroup
来管理您的布局(即LinearLayout
与FlowLayout
非常相似,RelativeLayout
可能会被视为BorderLayout
)
您可以像JPanel
if (type == TYPE.CHECKBOXES){
LinearLayout myPanel = new LinearLayout(this);
for (int i = 0; i < n ; i++){
CheckBox chk=new CheckBox(this);
chk.setText("Hello");
myPanel.addView(chk);
}
myRootPanel.addView(myPanel);
}
只是一个补充:Java中的Component
在Android中称为View
。 Android中的大多数控件(也称为Button
,EditText
,ImageButton
,ImageView
)都是View
的子类。