2012-03-07 3 views
0

buttononclicklistener не работает, как удалить выбранный элемент из спискакак удалить выбранный элемент из ListView с помощью CursorAdapter

public void onClick(View arg0) { 
    //TestDBAdapter.deleteEntry(itemId); 
    TestDBAdapter.delete("TABLE_NAME", "_id="+itemId, null);      
    Toast.makeText(DisplayActivity.this, "you want delete this item", Toast.LENGTH_SHORT).show(); 
    cursor.requery(); 
    updateList(); 
    notifyDataSetChanged(); 
} 
+0

Исходный код 'TestDBAdapter' – Caner

+0

См. Ссылки, это может помочь вам, http://android-er.blogspot.in/2011/06/edit-row-in-sqlite-database-using.html http: //anujarosha.wordpress.com/2012/01/06/how-to-update-and-delete-data-from-sqlite-database-in-android/ – Aerrow

ответ

1

Попробуйте так ,,

@Override 
public void bindView(View view, Context context, final Cursor cursor) { 

    TextView txtName = (TextView) view.findViewById(R.id.txt_name); 
    txtName.setText(cursor.getString(cursor.getColumnIndex(Helper.tbl_col_username))); 
    TextView txtPassword = (TextView) view.findViewById(R.id.txt_password); 
    txtPassword.setText(cursor.getString(cursor.getColumnIndex(Helper.tbl_col_password))); 

final String itemId = cursor.getString(cursor.getColumnIndex("id")); 

    Button button = (Button) view.findViewById(R.id.btn_delete); 
    button.setOnClickListener(new OnClickListener() { 

     public void onClick(View arg0) { 
      Log.d(TAG, "Button Click "); 
      deleteRecordWithId(itemId); 
      cursor.requery(); 
      notifyDataSetChanged(); 
     } 
    }); 
} 

также ссылаются на эту ссылку, How to remove a selected item from ListView using CursorAdapter

+0

Плохая идея. 'cursor.requery()' устарел сейчас – R00We

0

Другая возможность обновления данных в поддерживаемом CursorAdapter ListView заключается в создании нового курсора и вызове swapCursor в CursorAdapter.

cursor = newCursor(); 
    ((CursorAdapter) getListAdapter()).swapCursor(cursor); 

Надеюсь, это поможет.

Смежные вопросы