我发展的Couchbase精简版database.My问题的应用程序是,当我通过ArrayAdapter的数据看像下面形象。ArrayAdapter代码查询从couchbase精简版数据库中的数据和设置数据到列表视图中如何使用UsersAdapter将数据设置为列表视图?
CouchDb couchDb = new CouchDb(getApplicationContext());
ArrayList<ContactData> data = couchDb.getData();
ArrayAdapter adapter = new ArrayAdapter(this,R.layout.list_simple,R.id.textname,data);
list.setAdapter(adapter);
克服这曾经创建的自定义类UsersAdapter
public class UsersAdapter extends ArrayAdapter<ContactData>{
public UsersAdapter(MainActivity mainActivity, ArrayList<ContactData> data) {
super(mainActivity,R.layout.list_simple,data);
}
public class ViewHolder {
TextView name;
}
@NonNull
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ContactData contactData = getItem(position);
ViewHolder viewHolder;
if(convertView == null)
{
viewHolder = new ViewHolder();
LayoutInflater inflater = LayoutInflater.from(getContext());
convertView = inflater.inflate(R.layout.list_simple, parent, false);
viewHolder.name = (TextView) convertView.findViewById(R.id.textname);
}
else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.name.setText(contactData.getNames());
return convertView;
}
}
在上述适配器零指示字例外发生在这条线viewHolder.name.setText(contactData.getNames());
这是联络资料java类
public class ContactData {
String names;
public ContactData(String names) {
this.names = names;
}
public ContactData()
{
}
public String getNames() {
return names;
}
public void setNames(String names) {
this.names = names;
}
}
请帮助我如何解决这个问题,也说不清为什么该值在UsersAdapter返回null的原因。
发生的异常是
E/AndroidRuntime: FATAL EXCEPTION: main Process: com.seyali.couchbasedatabase2, PID: 5641 java.lang.NullPointerException: Attempt to read from field 'android.widget.TextView com.seyali.couchbasedatabase2.MainActivity$UsersAdapter$ViewHolder.name' on a null object reference
at com.seyali.couchbasedatabase2.MainActivity$UsersAdapter.getView(MainActivity.java:107)
at android.widget.AbsListView.obtainView(AbsListView.java:2363)
是否'list_simple'布局包含TextView的id为'textname'? – Piyush
是的,它包含了ID –
,这是什么'的ArrayList数据大小的TextView = couchDb.getData();?'是否填充? –
Piyush