0
私はSQLテーブルから作成されたリストビューを持っています。それは、行を削除しようとしたり、新しい行を挿入しようとすると、すべてのエントリを複製するという事実を除いて、うまく動作します。 1行を挿入または削除した後、それは行を追加または削除した後にリストを複製する
項目1
項目2
なる項目1項目2
ように見える変更する前に
アイテム1
リストが変更されるたびにfillDataを使用してアダプタを設定しています。
fillData()の最初の呼び出しではうまくいくようですが、既存の呼び出しのリスト全体をreaddで呼び出すだけです。それが働いたfillData(の開始で
private void fillData() {
int a=0;
todo = dbHelper.fetchAllTodos();
startManagingCursor(todo);
todo.moveToFirst();
while (!todo.isAfterLast()) {
String title=todo.getString(todo.getColumnIndexOrThrow(DbTodoAdapter.KEY_SUMMARY));
String detail=todo.getString(todo.getColumnIndexOrThrow(DbTodoAdapter.KEY_DESCRIPTION));
String priority=todo.getString(todo.getColumnIndexOrThrow(DbTodoAdapter.KEY_CATEGORY));
String alarm=todo.getString(todo.getColumnIndexOrThrow(DbTodoAdapter.KEY_ALARM));
if(alarm!=null) a=1; else a=0;
if(priority.contains("Urgent"))
rd = new RowData(0, title, detail,a,alarm);
if(priority.contains("Medium"))
rd = new RowData(1, title, detail,a,alarm);
if(priority.contains("Low"))
rd = new RowData(2, title, detail,a,alarm);
data.add(rd);
todo.moveToNext();
}
CustomAdapter adapter = new CustomAdapter(this, R.layout.todo_list_row, R.id.title, data);
setListAdapter(adapter);
getListView().setTextFilterEnabled(true);
//adapter.notifyDataSetChanged();
}
private class CustomAdapter extends ArrayAdapter<RowData> {
public CustomAdapter(Context context, int resource, int textViewResourceId, List<RowData> objects) {
super(context, resource, textViewResourceId, objects);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
ViewHolder holder=null;
TextView title = null;
TextView detail = null;
ImageView i11=null;
ImageView i12=null;
TextView alarm=null;
RowData rowData= getItem(position);
if(convertView == null){
convertView = mInflater.inflate(R.layout.todo_list_row, null);
holder = newViewHolder(convertView);
convertView.setTag(holder);
}else{
mInflater = (LayoutInflater) getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
holder = (ViewHolder) convertView.getTag();
}
title = holder.gettitle();
title.setText(rowData.mTitle);
detail = holder.getdetail();
detail.setText(rowData.mDetail);
i11=holder.getImage();
i11.setImageResource(imgid[rowData.mId]);
i12=holder.getImageAl();
i12.setImageResource(imgida[rowData.mIda]);
alarm = holder.getalarm();
alarm.setText(rowData.mAlarm);
return convertView;
}
、ありがとう:
ここではいくつかのコードがあります – user1106201