次の ListItem リスナーがあります。リストの 1 つをクリックすると、別のオプションを持つ別のリストが開きます。
public class MyList extends ListFragment {
...
public void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
switch (position) {
case 0:
Intent newActivity = new Intent(v.getContext(), AnotherList.class);
startActivity(newActivity);
}
}
}
これは、最初のオプションを選択したときに開きたいもう 1 つのリストです。
public class AnotherList extends ListFragment {
ArrayList<String> storage = new ArrayList<String>(
Arrays.asList("Test", "Test"));
ArrayAdapter<String> adapter;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
adapter = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, storage);
setListAdapter(adapter);
}
}
ただし、次のエラーメッセージが表示されます
06-02 11:52:39.251: E/AndroidRuntime(1231): android.content.ActivityNotFoundException: 明示的なアクティビティ クラスが見つかりません {.....}; AndroidManifest.xml でこのアクティビティを宣言しましたか?
AnotherList
マニフェスト ファイルに宣言がありますか? 最初のListFragmentでそれをしなかったので、私がしなければならないのは奇妙です。
アップデート:
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.list_fragment, new AnotherList());
ft.commit();
古い main_activity.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<fragment
android:id="@+id/list_fragment"
android:name="com.sanguosha.MyList"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
新しい作業 main_activity.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<LinearLayout
android:id="@+id/list_fragment"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent" ></LinearLayout>
</LinearLayout>