我有以下的ListItem监听器,当我点击其中一个列表时,我想要的是打开另一个包含不同选项的列表。
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);
}
}
}
当我选择第一个选项
时,这是我希望它打开的另一个列表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();
OLD 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>
答案 0 :(得分:2)
摘录
Intent newActivity = new Intent(v.getContext(), AnotherList.class);
startActivity(newActivity);
错了。您必须使用startActivity
来启动活动而不是片段。对于片段,您必须使用FragmentTransaction