在我的应用程序中实现ExpandableListView时,我在onPause和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
(背景通常是更改的)不会激发,因此背景绘图保持不变。我怎样才能获得这种视图?
在列表的适配器中调用notifyDataSetChanged()。这应该行得通。也许记录"getChildAt"视图会有所帮助。