使用list fragment中的getView时应用程序崩溃



我正在学习如何使用list fragment,并且在运行以下代码时该应用程序正在崩溃:

public class profileListFragment extends ListFragment {
String[] countries = new String[] {"USA", "China"};
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(inflater.getContext(),
            android.R.layout.simple_list_item_1,countries);
    setListAdapter(adapter);
    View retView = super.onCreateView(inflater, container,  savedInstanceState);
    return retView;//super.onCreateView(inflater, container,  savedInstanceState);
}
public void onListItemClick(ListView I, View v, int position, long id){
    I.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
    I.setSelector(android.R.color.holo_blue_light);
}
}

我知道这是因为getListView()语句,因为当我删除它不会崩溃...

任何帮助都非常感谢

I/ActivityManager(352): START {cmp=myapp.app/.loadProfile u=0} from pid 24295
E/AndroidRuntime(24295): java.lang.RuntimeException: Unable to start activity ComponentInfo{myapp.app/myapp.app.loadProfile}: android.view.InflateException: Binary XML file line #6: Error inflating class fragment
E/AndroidRuntime(24295): at myapp.app.loadProfile.onCreate(loadProfile.java:12)
E/AndroidRuntime(24295): at myapp.app.profileListFragment.onCreateView(profileListFragment.java:19)
11-10 22:15:01.002: W/ActivityManager(352):   Force finishing activity myapp.app/.loadProfile

我做了一个看起来像这样的XML:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:orientation="vertical"
     android:layout_width="match_parent"
     android:layout_height="match_parent" >
<ListView
    android:id="@id/android:list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:choiceMode="singleChoice" >
</ListView>
</LinearLayout>

然后将其充气,然后在该视图上进行findViewByid,以查找Android.r.id.list,然后首先要使用我需要的ListView处理程序。代码段是这样:

    View retView = inflater.inflate(R.layout.fragment_load_profile_list_layout,container, false);
    ListView lv = (ListView) retView.findViewById(android.R.id.list);
    lv.setSelector(android.R.color.holo_blue_light);
    lv.setChoiceMode(ListView.CHOICE_MODE_SINGLE);

最新更新