私のListFragment
のためにSimpleCursorAdapter
を拡張するカスタムアダプタは、データベース内の項目を正しく表示しません。それはTextViewのテキストを表示しません、私はそれが正しいテキストを表示するためにカーソルに何をする必要がありますか?カーソルがカスタムアダプタでテキストを正しくバインドしていない
私はbindView
を上書きしなければならなかったと思ったが、それは何の効果
アダプタを設定しなかった:私は、私はそれを得たと思う
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;
}
}
コンストラクタは非推奨であると貧しい応答性をもたらすことができます。ここで説明する2番目のものを使用してください:http://developer.android.com/reference/android/widget/SimpleCursorAdapter.html –
なぜ私はあなたの 'onCreate()'メソッドで 'Cursor'を直接クエリしているのか不明です。 'LoaderManager.LoaderCallbacks'を実装している場合は、システムによって(あなたが 'onCreateLoader()'メソッドを正しく実装していると仮定して)これを行う必要があります。 –
bindViewメソッドで、st Stringを記録してみてください。 – Krylez