I am developing the application in Couchbase lite database.My problem is when i query the data from the couchbase lite database and set the data into listview by ArrayAdapter the data are viewing like below image.The ArrayAdapter code is
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);
to overcome this used created the custom UsersAdapter class
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;
}
}
in the above adapter null pointer exception occurs in this line viewHolder.name.setText(contactData.getNames());
This is the Contactdata java class
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;
}
}
please help me how to solve this and also tell the reason why the value is returning null in UsersAdapter.
The exception occurred is
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)