我只想创建一个包含“a”,“b”,“c”的ListView。当我点击每个项目时,我希望每个项目都指向一个唯一的活动,每个活动包含一个不同的ListView。
列表视图
请提供最佳代码。在这里很难找到能做到这一点的东西。大多数条目对我来说太具体了,无法以最一致,最有效的方式清楚地了解如何做到这一切。
提前致谢!
答案 0 :(得分:0)
如果你想在一个Activity中使用A,B,C的ListView和另一个Activity中的子列表,你实际上只需要一个通用的ListActivity来处理它。您只需要传递ListActivity不同的数据集。
在下面的onCreate()
:
onListItemClick()
方法启动子活动。onListItemClick()
的任何调用。public class Example extends ListActivity {
boolean isSubList = false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String[] array;
Intent received = getIntent();
// Setup as main ListView
if(received == null || !received.hasExtra("array")) {
array = new String[] {"A", "B", "C"};
}
// Setup as sub ListView
else {
isSubList = true;
array = received.getStringArrayExtra("array");
}
setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, array));
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
if(!isSubList) {
Intent starting = new Intent(Example.this, Example.class);
switch(position) {
case 0:
starting.putExtra("array", new String[] {"1", "2", "3"});
break;
case 1:
starting.putExtra("array", new String[] {"4", "5", "6"});
break;
case 2:
starting.putExtra("array", new String[] {"7", "8", "9"});
break;
}
startActivity(starting);
}
}
}