Java ListAdapter出现奇怪的NullPointerException
好的,我创建了一个ListView和我自己的Java ListAdapter出现奇怪的NullPointerException,java,android,Java,Android,好的,我创建了一个ListView和我自己的ListAdapter,但是每当我向ListAdapter添加结果时,它就会崩溃,说NullPointerException 当filldata()打开MyAdapter adapter=newmyadapter()时,我确实启动了adapter 我的代码: public void filldata() throws IOException{ MyAdapter adapter = new MyAdapter ();
ListAdapter
,但是每当我向ListAdapter
添加结果时,它就会崩溃,说NullPointerException
当filldata()
打开MyAdapter adapter=newmyadapter()时,我确实启动了adapter
代码>
我的代码:
public void filldata() throws IOException{
MyAdapter adapter = new MyAdapter ();
for (int i = 1; i <= 10; i++) {
AdapterItem test = new AdapterItem(1+i, 2+i, 3+i);
adapter.addAdapterItem(test);
}
setListAdapter(adapter);
}
}
public class MyAdapter extends BaseAdapter {
private List<AdapterItem> items;
public void addAdapterItem(AdapterItem item) {
items.add(item);
}
public int getCount() {
return items.size();
}
public Object getItem(int position) {
return items.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent){
View rowView = getLayoutInflater().inflate(R.layout.searchitemview, parent);
TextView firstTextView = (TextView) rowView.findViewById(R.id.txtTitle);
firstTextView.setText(items.get(position).first);
// do the same with second and third
return rowView;
}
}
class AdapterItem {
public String first;
public String second;
public String third;
public AdapterItem(String first, String second, String third) {
this.first = first;
this.second = second;
this.third = third;
}
}
public void filldata()引发IOException{
MyAdapter=新的MyAdapter();
对于MyAdapter
构造函数中的(int i=1;iInitializeitems
。当您尝试添加项时,它是null
,因此出现异常
items = new ArrayList<AdapterItem>();
items=newarraylist();
在MyAdapter
构造函数中初始化项
。当您尝试添加项时,它是null
,因此出现异常
items = new ArrayList<AdapterItem>();
items=newarraylist();
在此处更改
public class MyAdapter extends BaseAdapter
{
private List<AdapterItem> items=new ArrayList<AdapterItem>();
}
公共类MyAdapter扩展了BaseAdapter
{
私有列表项=新的ArrayList();
}
您没有在MyAdapter
类中实例化item
。在此处更改
public class MyAdapter extends BaseAdapter
{
private List<AdapterItem> items=new ArrayList<AdapterItem>();
}
公共类MyAdapter扩展了BaseAdapter
{
私有列表项=新的ArrayList();
}
您没有在MyAdapter
类中实例化item