2014-01-14 41 views
1

在我的應用中實現ExpandableListView時,我一直在onPause和onResume上遇到一些麻煩。我可能會做這一切都是錯誤的(在這種情況下,請告訴我,我會努力做到這一點),因爲我學習Android主要來自我可以在網上找到的東西。所以,爲了進入它,我幾乎讓我的ExpandableListView按我的意願工作,但是卻有一點點bugbear。當我恢復活動時(例如在屏幕關閉後),我重新創建了我的遊標(是恢復活動的最佳方式嗎?我在...之前獲取遊標錯誤),然後以編程方式擴展當活動已暫停。現在我想要做的是更改擴展組的背景繪製,但我似乎無法找到獲取其視圖的方式。有任何想法嗎?在onResume中Android中編程式地更改ExpandableListView組的背景

@SuppressWarnings("unchecked") 
@Override 
protected void onResume() { 
    super.onResume(); 
    String searchText = ((QueryString)this.getApplicationContext()).getQuery(); 
    if((searchText == null || searchText.length() < 1)) 
     if(!hasQuery) 
      refreshCursor(); 
     else 
      searchCursor(queryString); 
    else 
     searchCursor(searchText); 

    ArrayList<Integer> ToExpand = (ArrayList<Integer>) ExpandedList.clone(); 
    ExpandedList.clear(); 
    for(Integer i : ToExpand) 
    { 
     listContent.expandGroup(i); 
     listContent.getChildAt(i).setBackground(getResources().getDrawable(R.drawable.listview_style_selected));  //NOT WORKING 
    } 
} 

編輯:

我真正想要的是,我剛纔跟listContent.expandGroup(i)編程擴展,這樣我就可以手動更改背景繪製的視圖。不幸的是getGroupView(當背景通常被改變時)在你以編程方式展開一個組時不會觸發,因此背景可繪製保持不變。我怎樣才能得到這個觀點?

回答

0

請在您的列表的適配器中撥打notifyDataSetChanged()。這應該工作。也許記錄「getChildAt」視圖有幫助。

+0

沒有運氣與notifyDataSetChanged()。當我今天晚上下班時,我會嘗試記錄getChildAt。 –

+0

getChildAt返回null ...不確定這是要使用的正確函數。 –

相關問題