Android 在gridview中高亮显示一行,然后单击该行

Android 在gridview中高亮显示一行,然后单击该行,android,gridview,row,Android,Gridview,Row,我的问题有点具体,我从stack overflow中尝试了很多类似的想法,但都不起作用 我有一个由自定义适配器填充的gridview。然后我想更改一行的背景颜色(但是在用户单击它之前,所以我不能在clicklistener中进行更改,这会起作用)-再次:标记一行,用户单击行中的一个位置,标记下一行,用户单击此行中的一个,等等 但是这个: View v = grid.getChildAt(i); ImageView img = (ImageView) v.findViewById(R.id.ite

我的问题有点具体,我从stack overflow中尝试了很多类似的想法,但都不起作用

我有一个由自定义适配器填充的gridview。然后我想更改一行的背景颜色(但是在用户单击它之前,所以我不能在clicklistener中进行更改,这会起作用)-再次:标记一行,用户单击行中的一个位置,标记下一行,用户单击此行中的一个,等等

但是这个:

View v = grid.getChildAt(i);
ImageView img = (ImageView) v.findViewById(R.id.item);
img.setImageResource(R.color.red);
(i是for循环的计数变量)不起作用,因为据我所知,img是null(null指针错误),因为视图当时没有膨胀

我尝试将此代码放在适配器的getView方法中,但仍然得到空指针(例如getChildAt(0)可以工作,但getChildAt(1)提供空指针,但我想要整行,所以..)

如何实现上述功能?我应该使用GridView而不是GridLayout吗?还是桌游?列表视图? 或者是否有一种方法可以访问我错过/不理解的gridview


非常感谢您的帮助!!:)

选择行还是单元格?整行(第一行1,然后用户单击行中的一个单元格,然后单击第2行,以此类推)