1

我有一个列表视图:
A
B
C
D

一旦从第一个项目中选择了一个项目,我就会尝试显示第二个 ListView。我尝试了以下方法:
A b1
B b2
C b3
D

它可以工作,但我不喜欢它的外观。如何实现列表,使第二个 ListView (b1-b2-b3) 通过移动下面的其余部分显示在所选项目下:
A
B
b1
b2
b3
C
D

另外我还有一个问题,如何根据所选项目引入新的字符串数组。目前我正在使用 switch 子句,但如果我碰巧需要更多数组,就会出现问题:

String[] brands = { ... };    String[] test2 = { ... };

    ArrayAdapter<String> arrayAdapterOne = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, brands);
    final ArrayAdapter<String> arrayAdapterTwo = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, test2);
    final ArrayAdapter<String> arrayAdapterThree = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, test3);
    final ArrayAdapter<String> arrayAdapterFour = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, test4);


listView1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
            TextView tv1 = (TextView) findViewById(R.id.textView1);
            tv1.setText(brands[position]);
            switch (position) {
            case 0:
                listView2.setAdapter(arrayAdapterTwo);
                break;
            case 1:
                listView2.setAdapter(arrayAdapterThree);
                break;
            case 2:
                listView2.setAdapter(arrayAdapterFour);
                break;
            case 3:
                listView2.setAdapter(arrayAdapterFour);
                break;

            }
        }
    });
4

3 回答 3

2

我认为这是不可能的(有几乎相同的问题),我建议改用ExpandalbeListView
这应该提供您尝试实现的所有(或几乎类似的)功能

于 2013-01-15T15:25:31.417 回答
2

也许你想试试ExpendableListView。它应该看起来像这些模式

希望能帮助到你!

于 2013-01-15T15:26:01.757 回答
1

第一个问题:我认为您想要的是 ExpandableListView ......看看这个教程:

http://www.dreamincode.net/forums/topic/270612-how-to-get-started-with-expandablelistview/

于 2013-01-15T15:25:35.017 回答