2013-03-12 58 views
3

我發現只有一個類似的問題,它並沒有幫助我。我希望你能幫助我,因爲我被卡住了。刷新從我的適配器ExpandableListView

這是我的自定義適配器(僅相關部分):

MyExpandableListAdapter

public class MyExpandableListAdapter extends BaseExpandableListAdapter { 

    //... 

    @Override 
    public View getChildView(int groupPosition, int childPosition, 
      boolean isLastChild, View view, ViewGroup parent) {  
     ChildInfo childInfo = (ChildInfo) getChild(groupPosition, childPosition); 
     if (view == null) { 
      LayoutInflater infalInflater = (LayoutInflater) context 
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      view = infalInflater.inflate(R.layout.prisustva_detaljno_child_row, 
        null); 
     } 

     Button delete = (Button) view.findViewById(R.id.delete); 
     delete.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       RelativeLayout Rl = (RelativeLayout) v.getParent(); 
       TextView id = (TextView) Rl.findViewById(R.id.id_prisustvo); 
       PrisustvaAdapter deleteByID = new PrisustvaAdapter(context); 

       deleteByID.openToWrite(); 
       deleteByID.openToRead(); 
       deleteByID.deleteID(id .getText().toString()); 
       deleteByID.close(); 

       Toast.makeText(context, "Successfully deleted!", 
         Toast.LENGTH_LONG).show(); 
      } 
     }); 

     // ... 
     return view; 
    } 

// ... 
} 

就像你可以看到我我ExpandableListView的每個子行中有一個按鈕。當我點擊那個按鈕時,它會觸發我的數據庫中的刪除過程,因爲您還可以看到我必須從適配器內刪除,因爲只有那裏我可以爲子行內的按鈕創建點擊事件。我想知道當我從數據庫中刪除數據時,如何刷新我的ExpandableListView?我必須從適配器內部完成嗎?如果不是,還有什麼替代方案?

P.S:如果你們需要更多的代碼,請讓我知道。

回答

8

我無法確定沒有看到代碼的其餘部分(如何實例化您的BaseExpandableAdapter),但在onClick()方法的末尾調用notifyDatasetChanged()應該有所斬斷。

+0

我試過了,但沒有奏效。在我刪除子行後,不應該調用notifyDatasetChanged()'。因爲我只是從我的數據庫中刪除它,而不是從列表中刪除它。當我使用ListView時,我有這個方法'adapter.remove()'和'adapter.add()',之後我調用了'notifyDatasetChanged()',它像一個魅力一樣工作,但我無法弄清楚ExpandableListView。 – Aksiom 2013-03-12 01:14:49

+1

如果您的適配器基於列表(而不是基於數據庫),則必須將其從列表中刪除,然後調用notifyDataSetChanged()。 – znat 2013-03-12 01:21:33

+2

我在找到如何從列表中刪除特定項目後進行管理。這是我唯一的問題,而且非常簡單。謝謝你的提示,幫了我很多。 P.S.我有一個與LinkedHashMap鏈接的ArrayList的ArrayList。起初不知道如何從那裏獲取特定物品。但最後它很簡單。 – Aksiom 2013-03-12 01:33:03

相關問題