例如,我有几个字符串数组,并且我已经设置了一个列表适配器:
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)
方法中应该有什么,可以让我加载一组不同的列表项,而无需创建新的 Activity 。
最佳答案
如果您这样做,您将始终更改适配器数据集,我不知道这是否是最佳选择。我有一个类似的用例,即当我在初始 String[] 中选择“三角形”时,我显示 ExpandableListView与初始“三角形”数据集的子项...
以另一种方式,我认为你可以这样做......(我没有测试过这个)
@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(...)
}
关于java - 转换到一组新的 ListView 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4502868/