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 filesubcategory\u fragment.xml的ListView
您必须重新初始化listview。因为整个布局都被重新绘制了
添加这一行
final ListView list_view = (ListView) findViewById(R.id.listView2);
之后
告诉我们您在哪里初始化adapter1
…因为在这段代码中没有要添加更多的声明,我认为问题在于我有两个适配器,一个用于在一个布局中设置ListView的内容,另一个用于在另一个布局中设置ListView。但我不确定是否诚实。非常感谢Harshikesh,这样做了,也谢谢你解释了你的答案。
setContentView(R.layout.subcategory_fragment);