SimpleCursorAdapterを持つリストビューを持っています。データベースから情報をロードします。データベースからアイテムを削除するにはonlongclicklistenerが必要ですが、正常に動作しますがリストはリフレッシュされません。 refreshDrawableState();そして、私は答えとして見つかりましたが、誰も働かない他のいくつかの方法が、これは私のonCreate機能です:refreshリストビューをデータベースから削除した後
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);
}
と私は試してみてください。この
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データベースを動作することができます、新しいカーソルを取得し、リストビューで変更されたデータセットを通知します –