我有以下 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();
旧 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>