Tôi có ListView với SimpleCursorAdapter, nó tải thông tin từ cơ sở dữ liệu, tôi muốn onlongclicklistener xóa một mục khỏi cơ sở dữ liệu, nó hoạt động tốt, nhưng danh sách không làm mới, tôi đã thử với listView. refreshDrawableState(); và một số phương pháp khác mà tôi tìm thấy là câu trả lời nhưng việc không có ai, đây là chức năng onCreate của tôi:Làm mới ListView sau khi xóa khỏi cơ sở dữ liệu
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_act);
imzero = (ImageView)findViewById (R.id.iv_zero_pers);
tvzero = (TextView)findViewById (R.id.tv_zero_pers);
dbConnector = new DatabaseConnectorrso(MyListActivity.this);
dbConnector.checkCursor();
if (DatabaseConnector.de)//check if database is emplty
{
try{
dbConnector.open();
dbConnector.load();//load information from database
dbConnector.close();
imzero.setVisibility(View.GONE);
tvzero.setVisibility(View.GONE);
}
catch(Exception ex) {
ex.printStackTrace();
dbConnector.close();
}
conAdapter =(new ImageAndTextAdapter(MyListActivity.this,
R.layout.meniu_lista_element, null, null, null));
setListAdapter(conAdapter);
}
else{
dbConnector.close();
imzero.setVisibility(View.VISIBLE);
tvzero.setVisibility(View.VISIBLE);
}
và tôi đã cố gắng để cập nhật danh sách như thế này
listView.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
deleteDialog(Integer.parseInt (DatabaseConnector.id.get(position))); //delete from database
dbConnector.checkCursor();
if (DatabaseConnector.de)
{
try{
dbConnector.open();
dbConnector.loadPersoane();
listView.refreshDrawableState();
dbConnector.close();
imzero.setVisibility(View.GONE);
tvzero.setVisibility(View.GONE);
}
catch(Exception ex) {
ex.printStackTrace();
dbConnector.close();
}
conAdapter =(new ImageAndTextAdapter(AltePersoane.this,
R.layout.meniu_lista_element, null, null, null));
setListAdapter(conAdapter);
}
else{
dbConnector.close();
imzero.setVisibility(View.VISIBLE);
tvzero.setVisibility(View.VISIBLE);
}
return true;
}
});
requery cơ sở dữ liệu , có được con trỏ mới và sau đó làm thông báo tập dữ liệu thay đổi trên listview –