我需要动态更改特定索引处ListView
的子视图的背景颜色。所以我需要在应用背景之前先获取视图。
我尝试了以下内容。
getViewAt(int index)
- 这不适用于ListView
。
getChildAt(int index)
- 这会产生运行时NPE错误
Google搜索会返回无关的结果。
请帮帮我。谢谢。
答案 0 :(得分:3)
我想出了如何做到这一点。
我真的认为不应该发布代码和logcat来解决类似于“如何设置背景图像”的问题。
无论如何,我的答案是,简而言之,通过适配器的getView()为listview中的每个子节点设置位置,然后使用findViewWithTag(Object tag)获取任何子节点。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView = (LinearLayout)inflater.inflate(R.layout.some_layout, parent, false); .
convertView.setTag(String.valueOf(position));
}
每当你需要一个特定的孩子时。
View v = mylistview.findViewWithTag(String.valueOf(index));
更改背景颜色。
v.setBackgroundResource(R.color.some_color);
答案 1 :(得分:1)
使用ViewGroup中的getChildAt(index)获取View。