Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 一个活动,多个内容_Java_Android_Android Activity - Fatal编程技术网

Java 一个活动,多个内容

Java 一个活动,多个内容,java,android,android-activity,Java,Android,Android Activity,我使用我们称之为Category的对象(bean)。 这些类别对象包含一组属性,包括类别对象列表 public class Category { private List<Category> categoryList; ... private Strings anAttribute; } 公共类类别{ 私有列表分类列表; ... 私人进贡; } 在编译时,我不知道根类别对象的深度,意思是:根类别列表中有多少个类别,每个列表中有多少个类别对象,依此类推

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

public class Category {
     private List<Category> categoryList;
     ...
     private Strings anAttribute;
}
公共类类别{
私有列表分类列表;
...
私人进贡;
}
在编译时,我不知道根类别对象的深度,意思是:根类别列表中有多少个类别,每个列表中有多少个类别对象,依此类推。实际上,我通过解析一个XML文件来获取根类别对象

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

知道我想使用XML文件来显示我想显示的内容,我怎么能做到这一点呢?我想重点不是为每个类别创建一个活动(即使是动态的)


谢谢您的帮助。

您可以使用以下结构:

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) );
            }
        });
    }
}
private LinearLayout myLayout;
创建时受保护的void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.something);
myLayout=(LinearLayout)findViewById(R.id.my_布局);
createBtns(loadFirstCategory());
}
专用基站(c类)
{
List c_List=c.getCategoryList();

对于(int i=0;我能给javabean自己一个列表吗?另外,如果你不想创建多个活动,你可以创建多个xml视图,并在需要时将其放大。createBtns()中的每个按钮还可以触发对同一活动的意图。setExtra(c);因此活动将当前显示的类别作为参数获取。这将使back键正常工作。