多个Listview使用适配器

3

我是Android的新手,想知道如何在Android中实现多个ListView。因此,我创建了一个包含4个字符串数组的应用程序。

<string-array name="menu1">
    <item>Break Fast</item>
    <item>Lunch</item>
    <item>Dinner</item>
</string-array>
<string-array name="breakfast">
    <item>idly</item>
    <item>dosa</item>
    <item>pongal</item>
    <item>puri</item>
    <item>chapathi</item>
</string-array>
<string-array name="lunch">
    <item>Meals</item>
    <item>Curd Rice</item>
    <item>Biriyani</item>
    <item>Tomato Rice</item>
    <item>Chapathi</item>
</string-array>
<string-array name="dinner">
    <item>idly</item>
    <item>dosa</item>
    <item>parotta</item>
    <item>puri</item>
    <item>chapathi</item>
</string-array>

当我点击菜单1中的早餐项目时,另一个列表视图应该被调用,在该列表视图中,它应该显示与早餐字符串数组相关的项目,类似地,其他项目也应该被调用。我们该如何做到这一点?

MainActivity

public class MainActivity extends ActionBarActivity {
ListView listView;
String[] menus;
String[] breakfast;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    listView= (ListView) findViewById(R.id.listView);
    menus=getResources().getStringArray(R.array.menu1);
    breakfast=getResources().getStringArray(R.array.breakfast);
    ArrayAdapter<String> adapter= new ArrayAdapter<String>(this,R.layout.first_menu,R.id.textView,menus);
    listView.setAdapter(adapter);
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Intent intent= new Intent(MainActivity.this,MenuTwo.class);


        }
    });


}
2个回答

1
在 onClick 监听器中,制作一个 switch case,更新菜单数据并调用 notifydatasetchanged:
    switch(item)
{

case 0: menu = ....; break;
case 1: menu = ....; break;

...
}

adapter.notifydatasetChanged();

你还需要更新点击监听器。更好的方式是使用一个新的ListView来显示相关项目的点击。

想在Switch case中创建一个新的Listview吗? - Karthick
如果是同一个视图,则使用现有的ListView,否则创建新的ListView。 - Karan

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接