我得到這個listView這是從SQL數據庫通過自定義光標適配器填充。當我點擊一個項目時,對話框出現並要求確認以刪除該項目。如果我選擇YES,它將刪除列表中的項目和SQL條目,並且我重新加載列表並重新滾動到列表的頂部。 我想要做的是,當我刪除一個項目時,列表應該記住它的位置並顯示那個項目靠近那個已刪除的項目(我不希望它回到列表頂部)。我怎麼能做到這一點?listView滾動記憶
這裏是我的代碼(onItemClick和setListView方法):
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
final long arg3mod = arg3;
AlertDialog.Builder alertDialog = new AlertDialog.Builder(HistoryActivityMod.this);
// Setting Dialog Title
alertDialog.setTitle("Confirm Delete...");
// Setting Dialog Message
alertDialog.setMessage("Are you sure you want delete this?");
alertDialog.setIcon(android.R.drawable.ic_menu_delete);
// Setting Positive "Yes" Button
alertDialog.setPositiveButton("YES", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int which) {
db.delete(DbHelper.TABLE_NAME, DbHelper.C_ID+"="+arg3mod, null);
setListView();
Toast.makeText(getApplicationContext(), "Entry was deleted", Toast.LENGTH_SHORT).show();
}
});
// Setting Negative "NO" Button
alertDialog.setNegativeButton("NO", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getApplicationContext(), "Nothing changed", Toast.LENGTH_SHORT).show();
dialog.cancel();
}
});
// Showing Alert Message
alertDialog.show();
}
public void setListView(){
String[] columns= {DbHelper.C_ID, DbHelper.ROW1, DbHelper.ROW2, DbHelper.ROW3, DbHelper.ROW4, DbHelper.ROW5};
Cursor cursor = db.query(DbHelper.TABLE_NAME, columns, null, null, null, null, "_id DESC");
CustomCursorAdapter adapter = new CustomCursorAdapter(getApplicationContext(),cursor, CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
lv.setAdapter(adapter);
}
我改變了它,但ListView控件中沒有加載。我應該在代碼中調用lv.setAdapter(adapter)? – Markonionini 2014-10-19 20:58:14
創建適配器後。 – 2014-10-19 21:24:08
也許我錯過了一些東西,但這不適合我。 – Markonionini 2014-10-19 22:34:33