ListView致命异常:main java.lang.NullPointerException

ListView致命异常:main java.lang.NullPointerException,java,android,Java,Android,我要走了 FATAL EXCEPTION: main java.lang.NullPointerException 在这一行: list_view.setAdapter(adapter1); 我已启动列表视图和适配器1,我不知道为什么会出现此错误 我已经在setContentView之后初始化了列表视图: list_view = (ListView) findViewById(R.id.listView2); 谁能帮我一下吗?如果你需要更多的信息,我会提供的。提前谢谢 编辑以添加M

我要走了

FATAL EXCEPTION: main
    java.lang.NullPointerException
在这一行:

list_view.setAdapter(adapter1);
我已启动列表视图和适配器1,我不知道为什么会出现此错误

我已经在setContentView之后初始化了列表视图:

list_view = (ListView) findViewById(R.id.listView2);
谁能帮我一下吗?如果你需要更多的信息,我会提供的。提前谢谢

编辑以添加MainActivity类的完整代码:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.category_fragment);

    Context context=getApplicationContext();

    final ListView listview = (ListView) findViewById(R.id.listView);
    final ListView list_view = (ListView) findViewById(R.id.listView2);

    final ArrayList<String> list = new ArrayList<>();
    final ArrayList<String> list1 = new ArrayList<>();


    String[] values = context.getResources().getStringArray(R.array.categories);
    final String[] shoes = context.getResources().getStringArray(R.array.shoe_items);
    for (int i = 0; i < values.length; ++i) {
        list.add(values[i]);
    }


    //main category
    final StableArrayAdapter adapter = new StableArrayAdapter(this,
            android.R.layout.simple_list_item_1, list);
    listview.setAdapter(adapter);



    for (int i = 0; i < shoes.length; ++i) {
        list1.add(shoes[i]);
    }
    final StableArrayAdapter adapter1 = new StableArrayAdapter(this,
            android.R.layout.simple_list_item_1, list1);
    listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
        @Override
        public void onItemClick(AdapterView<?> parent, final View view,
                                int position, long id) {


            setContentView(R.layout.subcategory_fragment);
            if (position == 0) {

                list_view.setAdapter(adapter1);
            }


        }

    });
}
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.category_片段);
Context=getApplicationContext();
最终ListView ListView=(ListView)findViewById(R.id.ListView);
最终ListView列表\ u视图=(ListView)findViewById(R.id.listView2);
最终ArrayList=新ArrayList();
最终ArrayList列表1=新ArrayList();
字符串[]值=context.getResources().getStringArray(R.array.categories);
最后一个字符串[]shoes=context.getResources().getStringArray(R.array.shoe_项);
对于(int i=0;i
onClick()
内的代码中,您再次调用
setContentView()
,这将覆盖以前的布局并替换为新的布局

应该有id为
listView2
layout file
subcategory\u fragment.xml的ListView
您必须重新初始化listview。因为整个布局都被重新绘制了

添加这一行

final ListView list_view = (ListView) findViewById(R.id.listView2);
之后


告诉我们您在哪里初始化
adapter1
…因为在这段代码中没有要添加更多的声明,我认为问题在于我有两个适配器,一个用于在一个布局中设置ListView的内容,另一个用于在另一个布局中设置ListView。但我不确定是否诚实。非常感谢Harshikesh,这样做了,也谢谢你解释了你的答案。
setContentView(R.layout.subcategory_fragment);