Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
内容必须具有id属性为';android.R.id.list';_Android_Listview_Exception_Android Listview - Fatal编程技术网

内容必须具有id属性为';android.R.id.list';

内容必须具有id属性为';android.R.id.list';,android,listview,exception,android-listview,Android,Listview,Exception,Android Listview,XML 爪哇 public类UserDetails扩展了ListFragment{ 阵列适配器; ArrayList userIndex=新的ArrayList(); @凌驾 创建视图上的公共视图(布局、充气机、视图组容器、, Bundle savedInstanceState){ 查看android=充气机。充气(R.layout.users\u选项卡,容器,false); adapter=new ArrayAdapter(inflater.getContext(),R.layout.si

XML


爪哇

public类UserDetails扩展了ListFragment{
阵列适配器;
ArrayList userIndex=新的ArrayList();
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
查看android=充气机。充气(R.layout.users\u选项卡,容器,false);
adapter=new ArrayAdapter(inflater.getContext(),R.layout.single\u user\u chat\u选项卡,userIndex);
setListAdapter(适配器);
返回android;
}
}
当我执行程序时,它会显示运行时异常。但我已经准备好了带有id列表的listview。我不知道为什么会出现例外。请告诉我为什么它会抛出异常。我已经尝试了所有的解决方案,但仍然遇到相同的问题。


public class UserDetails extends ListFragment  {
    ArrayAdapter<String> adapter;
    ArrayList<String> userIndex = new ArrayList<String>();
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View android = inflater.inflate(R.layout.users_tab, container, false);   
        adapter = new ArrayAdapter<String>(inflater.getContext(),R.layout.single_user_chat_tab,userIndex);
        setListAdapter(adapter);
        return android;
    }
}

我认为在onCreateView中返回自定义视图之前,不能调用setListAdapter。我看到3种解决方案

  • 调用super.onCreateView()而不是膨胀
  • 在OnActivityCreated中设置适配器
  • 要么编写android.findviewbyd(android.R.id.list).setAdapter(adapter);反而

  • 不工作。我的活动类扩展了ListFragment。@AndroidLearner现在检查,来源:当使用ListActivity或ListFragment时,我们的布局xml中必须有一个id为=@id/android:list的ListView。因为ListActivity和ListFragment在内部使用此id创建列表,而这是getListView()引用或返回的列表。也发布您的
    ListFragment
    。您是否尝试清理和重建项目?发布您的代码和XMLyes我尝试了所有替代方法。
    users\u tab.xml
    是您粘贴在此处的布局吗?即使我移除了适配器,仍然会显示相同的异常。因此解决问题的简单方法是:只实现简单的片段,列表片段并没有带来真正的方便。
    <?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:orientation="vertical" >
        <ListView
            android:id="@android:id/list"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </LinearLayout>
    
    public class UserDetails extends ListFragment  {
        ArrayAdapter<String> adapter;
        ArrayList<String> userIndex = new ArrayList<String>();
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            View android = inflater.inflate(R.layout.users_tab, container, false);   
            adapter = new ArrayAdapter<String>(inflater.getContext(),R.layout.single_user_chat_tab,userIndex);
            setListAdapter(adapter);
            return android;
        }
    }
    
     <ListView
            android:id="@id/android:list"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />