My Custom Adapter that extends SimpleCursorAdapter
for my ListFragment
does not display the items in my database correctly. it does not display the text in the TextView, what else do I have to do to the cursor for it to show the correct text?
I thought I had to override the bindView
but that had no effect
Setting the adapter:
public void populateList(){ String[] fields = new String[] {BowlersDB.NAME}; Cursor c = getActivity().getContentResolver().query(BowlersDB.CONTENT_URI, new String[] {BowlersDB.ID,BowlersDB.NAME},null,null,BowlersDB.NAME + " COLLATE LOCALIZED ASC"); mAdapter = new CheckAdapter(getActivity(),R.layout.check_listview,c,fields,new int[] {R.id.nameCheckTV}); setListAdapter(mAdapter); getLoaderManager().initLoader(0,null,this); }
Adapter:
public class CheckAdapter extends SimpleCursorAdapter{ Context context; Cursor c; public CheckAdapter(Context context, int layout, Cursor c,String[] from, int[] to) { super(context, layout, c, from, to); this.context = context; this.c = c; // TODO Auto-generated constructor stub } @Override public void bindView(View view,Context context,Cursor cursor){ String st = cursor.getString(cursor.getColumnIndex(BowlersDB.NAME)); TextView tv = (TextView)view.findViewById(R.id.nameCheckTV); tv.setText(st); } @Override public View getView(final int position,View convertView,ViewGroup parent){ if(convertView == null){ LayoutInflater inflator = getLayoutInflater(); convertView = inflator.inflate(R.layout.check_listview,null); } CheckBox cb = (CheckBox)convertView.findViewById(R.id.checkBox1); cb.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { CheckBox check = (CheckBox)v.findViewById(R.id.checkBox1); int pos = position; if(check.isChecked()){ mCheckedItems.add(position); }else if(!check.isChecked()){ for(int i=0;i< mCheckedItems.size();i++){ if(mCheckedItems.get(i) == position){ mCheckedItems.remove(i); } } } } }); return convertView; } }