2012-01-05 25 views
0

刪除從數據庫中我的ListView不更新刪除後,我發現在計算器由它不工作的方法,這裏是我如何填充我的列表:更新ListView控件從數據庫的Android

... 
private ListView list; 
ListAdapter adapter; (ListAdapter is a class from here i set the layout of a row) 
... 
... 

protected void onCreate(Bundle savedInstanceState) { 
    ... 
    ... 
     database info = new database(this); 
    info.open(); 
    data = info.getData2(); 
    data2 = info.getData3(); 
    info.close(); 
    list=(ListView)findViewById(R.id.list); 
    adapter=new ListAdapter(this, data , data2); 
    list.setAdapter(adapter); 
     registerForContextMenu(list); 
     ... 
     ... 
} 

... 
... 
public boolean onContextItemSelected(MenuItem item) { 
    AdapterView.AdapterContextMenuInfo info =(AdapterView.AdapterContextMenuInfo)item.getMenuInfo(); 
     ... 
     ... 
     if(menuItemName.equals("Delete")){ 
     menuItemName = "2"; 
     Log.i(TAG,"Primul "+listItemName + " " + " al doilea " + listItemName2); 
     database delete = new database(this); 
     delete.open();   
    delete.deleteEntryFromList(listItemName,listItemName2); 
    delete.close(); 
     //here i am suposed to do 
      adapter.notifyDataSetChanged(); 
     //but it does not work 
     } 
} 

有人幫助我在這 ?

回答

0

我一直有與通知方法的問題。最簡單的辦法:創建一個名爲updateAdapter()方法,更換的通知電話,把這個在它:

private void updateAdapter(){ 
    database info = new database(this); 
    info.open(); 
    data = info.getData2(); 
    data2 = info.getData3(); 
    info.close(); 
    list=(ListView)findViewById(R.id.list); 
    adapter=new ListAdapter(this, data , data2); 
    list.setAdapter(adapter); 
     registerForContextMenu(list); 
} 

調用,而不是通知*方法。

+0

沒有,仍然無法正常工作;它不會從數據庫中刪除項目從列表中刪除它 – Razvan 2012-01-06 00:00:23

+0

請發佈此代碼:delete.deleteEntryFromList(listItemName,listItemName2);也許你並沒有真的刪除該項目 – sfratini 2012-01-06 00:02:04

+0

我是從數據庫中刪除它,我非常確定。如果我刪除它,離開活動,回來它不在那裏,我甚至檢查它從adb – Razvan 2012-01-06 00:05:26

0

您需要更新您在varibals data = info.getData2()中的數據;和 data2 = info.getData3();那你說adapter.notifiDataSetChanged,它會更新列表視圖的youre

編輯 bettter的answere

database delete = new database(this); 
    delete.open();   
delete.deleteEntryFromList(listItemName,listItemName2); 
delete.close(); 
    database info = new database(this); 
info.open(); 
data = info.getData2(); 
data2 = info.getData3(); 
info.close(); 
adapter.notifyDataSetChanged(); 
+0

該怎麼做?我再次調用填充數據和數據2的數據庫,並說adapter.notifiDataSetChanged – Razvan 2012-01-05 23:53:38

+0

檢查編輯。 – 2012-01-05 23:59:04

+0

我只是檢查it.sorry,如果它是一個愚蠢的問題,但我試過像幾乎所有 – Razvan 2012-01-06 00:03:13