Android 视图寻呼机中的多个自定义ListFragment
我有一个viewPager,其中包括3个不同的片段,以及相关的布局(片段新的、片段完成的、片段创建的)。每个片段实现onCreateView类似于:Android 视图寻呼机中的多个自定义ListFragment,android,listview,android-fragments,android-listview,android-viewpager,Android,Listview,Android Fragments,Android Listview,Android Viewpager,我有一个viewPager,其中包括3个不同的片段,以及相关的布局(片段新的、片段完成的、片段创建的)。每个片段实现onCreateView类似于: public class NewQuizFragment extends ListFragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { supe
public class NewQuizFragment extends ListFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
View rootView = inflater.inflate(R.layout.fragment_new_quiz, container, false);
mListView = (ListView) getActivity().findViewById(R.id.list);
mArrayAdapter = new QuizAdapter(mItemList, getActivity());
mArrayAdapter.setNotifyOnChange(true);
setListAdapter(mArrayAdapter);
return rootView;
}
}
布局应该是不同的,因此我不能重复使用它们。它们的定义类似于:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#fa6a6a"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<Button
android:id="@+id/createButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Create" />
<TextView
android:id="@+id/intro_text"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="5dp"
android:layout_weight="1"
android:text="Created Quiz"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="299dp" >
<ListView
android:id="@+id/android:list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:drawSelectorOnTop="false" />
<TextView
android:id="@+id/android:empty"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="No items."
android:textAppearance="?android:attr/textAppearanceMedium" />
</FrameLayout>
</LinearLayout>
我面临的问题是这个代码配置,eclipse给了我一个错误:
列表无法解析或不是字段
与该行相关
mListView=(ListView)getActivity().findViewById(R.id.list)
但是,如果我将3个listview ID中的任何一个更改为3个片段中的其他内容,则不会出现编译时错误。但是,当我运行代码时,会出现以下错误:
11-16 16:32:52.533:E/AndroidRuntime(20935):
java.lang.RuntimeException:您的内容必须具有id为的ListView
属性为“android.R.id.list”
我不知道该怎么做。我对各种组件的使用不合适吗?在XML中,更改这些组件
android:id="@+id/android:list"
android:id="@+id/android:empty"
对这些:
android:id="@android:id/list"
android:id="@android:id/empty"
在你的片段中,改变
mListView = (ListView) getActivity().findViewById(R.id.list);
到
这些是引用android名称空间中声明的资源ID的正确方法。Cool!学到了一些新东西。这就解决了问题。我会尽可能接受答案
mListView = (ListView) rootView.findViewById(android.R.id.list);