Я удаляю элемент из списка, который заполняется с помощью адаптера курсора. Даже я использовал notifyDataSetChanged(). Но он не обновлялся немедленно. Я видел разницу после этой страницы снова из предыдущей активности.CursorAdapter ListView refresh
Ваш ответ более ценится.
Вот мой код адаптера:
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.remove:
dbUtil.open();
String delItem = viewHolder.cartProduct.getText().toString();
Cursor Cartcursor = dbUtil.getCartID(delItem);
if (Cartcursor != null && Cartcursor.moveToFirst()) {
Cartcursor.moveToFirst();
String strCartProductID = Cartcursor.getString(Cartcursor.getColumnIndex(DbHelper.CART_PDT_ID));
dbUtil.deleteCart(strCartProductID, delItem);
Toast.makeText(contextNew, "Cart Item " + "RowId" + strCartProductID + " Product Id" + delItem, Toast.LENGTH_SHORT).show();
Toast.makeText(contextNew, "Deleted Successfully", Toast.LENGTH_SHORT).show();
}
break;
}
UPDATE:
MyFragment.class
dbUtil.open();
cartcursor = dbUtil.getCartItem();
txtCartCount.setText("" + cartcursor.getCount());
if (cartcursor != null && cartcursor.moveToFirst()) {
cartcursor.moveToFirst();
cartAdapter = new CartCursorAdapter(context, cartcursor, MYFRAGMENT, true);
cartList.setAdapter(cartAdapter);
cartList.setTextFilterEnabled(true);
cartAdapter.notifyDataSetChanged();
}
ИДЕАЛЬНЫЙ РЕЗУЛЬТАТ:
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.remove:
dbUtil.open();
String delItem = viewHolder.cartProduct.getText().toString();
Cursor Cartcursor = dbUtil.getCartID(delItem);
if (Cartcursor != null && Cartcursor.moveToFirst()) {
Cartcursor.moveToFirst();
String strCartProductID = Cartcursor.getString(Cartcursor.getColumnIndex(DbHelper.CART_PDT_ID));
dbUtil.deleteCart(strCartProductID, delItem);
Cartcursor = dbUtil.getCartItem();
swapCursor(Cartcursor);
notifyDataSetChanged();
}
break;
}
Показати код, где вы звоните notifyDatasetChanged() – barq
Изменено code.Please –