一项活动,很多内容

时间:2012-03-28 13:39:55

标签: java android android-activity

我使用的对象(bean)我们称之为Category。 这些Category对象包含一组属性,包括Category对象列表。

public class Category {
     private List<Category> categoryList;
     ...
     private Strings anAttribute;
}

在编译时,我不知道根类别对象的深度,这意味着:根类别列表中有多少个类别,列表中的每一个都有多少个类别对象,所以继续。我实际上通过解析XML文件获得了根类别对象。

我有一个活动,要恢复,它会显示一组按钮。每个按钮代表一个根类别对象(每个都来自一个XML文件)。我希望一旦我点击其中一个按钮,我会得到一个新的“窗口”,显示一组按钮(列表中每个类别的一个按钮),每个按钮递归显示一个新的“窗口”,显示一组按钮...

我怎么能知道我想将XML文件用于我想要显示的内容?我想重点不是每个类别创建一个活动(甚至动态)。

感谢您的帮助。

1 个答案:

答案 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) );
            }
        });
    }
}