我使用的对象(bean)我们称之为Category。 这些Category对象包含一组属性,包括Category对象列表。
public class Category {
private List<Category> categoryList;
...
private Strings anAttribute;
}
在编译时,我不知道根类别对象的深度,这意味着:根类别列表中有多少个类别,列表中的每一个都有多少个类别对象,所以继续。我实际上通过解析XML文件获得了根类别对象。
我有一个活动,要恢复,它会显示一组按钮。每个按钮代表一个根类别对象(每个都来自一个XML文件)。我希望一旦我点击其中一个按钮,我会得到一个新的“窗口”,显示一组按钮(列表中每个类别的一个按钮),每个按钮递归显示一个新的“窗口”,显示一组按钮...
我怎么能知道我想将XML文件用于我想要显示的内容?我想重点不是每个类别创建一个活动(甚至动态)。
感谢您的帮助。
答案 0 :(得分:3)
您可以使用以下结构:
private LinearLayout myLayout;
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.something);
myLayout = (LinearLayout) findViewById(R.id.my_layout);
createBtns( loadFirstCategory() );
}
private void createBtns(Category c)
{
List<Category> c_list = c.getCategoryList();
for (int i=0; i<c_list.size(); i++)
{
Button btn = new Button(this);
btn.setText( c_list.get(i).getName() );
myLayout.addView(btn);
btn.setOnClickListener(new OnClickListener() {
public void onClick()
{
myLayout.removeAll();
createBtns( c_list.get(i) );
}
});
}
}