例如,我有几个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)
方法应该允许我加载一组不同的列表项而无需创建新活动。
答案 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(...)
}