过渡到一组新的ListView项目?

时间:2010-12-21 18:57:00

标签: java android listview

例如,我有几个String数组,我已经设置了一个列表适配器:

String[] initial = new String[] {
        "Geometry",
        "Algebra",
        "Differentation Calculus",
        "Integral Calculus",
        "Trigonometry",
        "Algebra II",
        "Triangle",
        "Rectange"
};
String [] triangle = new String[] {
        "Area",
        "Perimeter"
};

String[] rectangle = new String[] {
        "Area",
        "Perimeter"
};

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, initial);
    setListAdapter(adapter);
}

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    ...
}

我的onListItemClick(ListView, View, int, long)方法应该允许我加载一组不同的列表项而无需创建新活动。

1 个答案:

答案 0 :(得分:1)

如果这样做,您将始终更改适配器数据集,我不知道是否是最佳选择。我有一个类似的用例,即当我在初始String []中选择'Triangle'时,我会显示一个ExpandableListView,其中包含初始'Triangle'数据集的子项......

另一方面,我认为你可以这样做...(我没有测试过这个)

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {

     if(adapter.getItem(position).equals("Triangle")){
         adapter.clear();
         for(String item : triangle){
            adapter.add(item);
         }
         adapter.notifyDataSetChanged();
     }else if(...)
}