在Android中的onResume期间以编程方式更改可扩展列表视图组的背景

时间:2014-01-14 22:58:29

标签: android expandablelistview android-drawable onresume

在我的应用中实现ExpandableListView时,我遇到了onPause和onResume的问题。我可能做错了(在这种情况下,请告诉我,我会尽力做到正确),因为我正在学习Android,主要是我在网上找到的东西。所以,为了进入它,我几乎让我的ExpandableListView按照我的意愿工作,但对于一个小bugbear。当我恢复活动时(例如在屏幕关闭后)我重新创建我的游标(这是恢复活动的最佳方式吗?我之前得到了游标错误...)然后以编程方式扩展当扩展时的组活动暂停了。现在,我想要做的就是更改扩展组的背景drawable,但我似乎无法找到获取视图的方法。有什么想法吗?

@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(通常更改背景)不会触发,因此背景可绘制保持不变。我怎样才能得到这个观点?

1 个答案:

答案 0 :(得分:0)

在列表的适配器中调用notifyDataSetChanged()。这应该工作。也许记录“getChildAt”视图有帮助。