Android:初学者适配器问题。如何解决setAdapter导致NullPointerException的问题

Android:初学者适配器问题。如何解决setAdapter导致NullPointerException的问题,android,android-arrayadapter,Android,Android Arrayadapter,我得到了以下错误: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.test/com.example.test.ListActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.Lis

我得到了以下错误:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.test/com.example.test.ListActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference
我被困住了,希望你能帮助我

ThingsDB
事物的列表(字符串what,字符串where)

列表片段:

import ... 

public class ListFragment extends Fragment{
    private static ThingsDB thingsDB;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        thingsDB = thingsDB.get(this.getActivity());
        ListView listView= (ListView) getActivity().findViewById(R.id.thing_list_view);
        ArrayAdapter<Thing> adapter = new ArrayAdapter<Thing>(this.getActivity(), R.layout.list_item, R.id.text1, thingsDB.getThingsDB());
        listView.setAdapter(adapter);
    }
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstance) {
        View v = inflater.inflate(R.layout.fragment_list, container, false);
        return v;
    }
}
导入。。。
公共类ListFragment扩展了片段{
私有静态ThingsDB ThingsDB;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
thingsDB=thingsDB.get(this.getActivity());
ListView ListView=(ListView)getActivity().findViewById(R.id.thing\u list\u view);
ArrayAdapter=newArrayAdapter(this.getActivity(),R.layout.list_项,R.id.text1,thingsDB.gethingsdb());
setAdapter(适配器);
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图v=充气机。充气(R.layout.fragment_列表,容器,错误);
返回v;
}
}
xml


当视图还没有膨胀时,您正在调用getview,请检查片段生命周期,
onCreate()
onCreate()之前被调用

一旦创建: 在API级别11中添加了void onCreate(Bundle savedInstanceState)调用以进行片段的初始创建。这 在onAttach(活动)之后和之前调用 onCreateView(LayoutFlater、ViewGroup、Bundle),但如果 片段实例在活动重新创建过程中保留(请参见 setRetainInstance(布尔值))

调用onCreateView以使片段实例化其用户 界面视图。这是可选的,可以使用非图形片段 返回null(这是默认实现)。这将被称为 在onCreate(Bundle)和onActivityCreated(Bundle)之间

在这种情况下,您将有

import ... 

public class ListFragment extends Fragment{
    private static ThingsDB thingsDB;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        thingsDB = thingsDB.get(this.getActivity());
    }
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstance) {
        View v = inflater.inflate(R.layout.fragment_list, container, false);
        ListView listView= (ListView) v.findViewById(R.id.thing_list_view);
        ArrayAdapter<Thing> adapter = new ArrayAdapter<Thing>(this.getActivity(), R.layout.list_item, R.id.text1, thingsDB.getThingsDB());
        listView.setAdapter(adapter);
        return v;
    }
}
导入。。。
公共类ListFragment扩展了片段{
私有静态ThingsDB ThingsDB;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
thingsDB=thingsDB.get(this.getActivity());
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图v=充气机。充气(R.layout.fragment_列表,容器,错误);
ListView ListView=(ListView)v.findViewById(R.id.thing\u list\u view);
ArrayAdapter=newArrayAdapter(this.getActivity(),R.layout.list_项,R.id.text1,thingsDB.gethingsdb());
setAdapter(适配器);
返回v;
}
}

谢谢!&感谢链接以及!你好:)我很高兴能帮上忙:)
import ... 

public class ListFragment extends Fragment{
    private static ThingsDB thingsDB;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        thingsDB = thingsDB.get(this.getActivity());
    }
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstance) {
        View v = inflater.inflate(R.layout.fragment_list, container, false);
        ListView listView= (ListView) v.findViewById(R.id.thing_list_view);
        ArrayAdapter<Thing> adapter = new ArrayAdapter<Thing>(this.getActivity(), R.layout.list_item, R.id.text1, thingsDB.getThingsDB());
        listView.setAdapter(adapter);
        return v;
    }
}