У меня есть этот списокView, который заполняется из базы данных SQL через пользовательский адаптер курсора. Когда я нажимаю на элемент, появляется диалоговое окно и запрашивает подтверждение для удаления этой записи. Если я выберем ДА, он также удалит элемент в списке и в записи SQL, а метод setListView, который я сделал, перезагружает список и прокручивает список до вершины списка. Что я хотел бы сделать, так это то, что когда я удаляю элемент, список должен помнить его позицию и показывать элементы, которые находятся рядом с этим удаленным элементом (я не хочу, чтобы он возвращался к началу списка). Как я могу это сделать?listView scroll запомнить
Вот мой код (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 (адаптер)? – Markonionini
После создания адаптера. –
Может быть, мне что-то не хватает, но это не работает для меня. – Markonionini