「a」、「b」、「c」を含むListViewを作成したいだけです。各アイテムをクリックすると、それぞれが異なるListViewを含む固有のアクティビティを指示するようになります。
リストビュー
- A
- 1
- 2
- 3
- B
- 3
- 4
- 5
- C
- 6
- 7
- 8
これに最適なコードを提供してください。これを行う何かをここで見つけるのはとても難しいです。ほとんどのエントリは具体的すぎて、これらすべてを最も一貫性のある効率的な方法で行う方法を明確に理解することはできません。
前もって感謝します!
あるアクティビティにA、B、Cがあり、別のアクティビティにサブリストがあるListViewが必要な場合、これを処理するために必要なのは、実際には1つの汎用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);
}
}
}