如何在特定索引处获取ListView的子视图

时间:2014-10-13 08:24:22

标签: android android-listview android-view

我需要动态更改特定索引处ListView的子视图的背景颜色。所以我需要在应用背景之前先获取视图。

我尝试了以下内容。

getViewAt(int index) - 这不适用于ListView

getChildAt(int index) - 这会产生运行时NPE错误

Google搜索会返回无关的结果。

请帮帮我。谢谢。

2 个答案:

答案 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。