今天在看代码的时候发现一个问题。关于gridView点击其中的item选项而改变这个选项的背景的问题。这里我把我的想法写出来,希望对大家有所帮助。
在我们点击每个Item的时候,记录它的是由position来实现的。在adapter中我们把这个position当作一个已知的值来赋值给一个变量a,在getView中通过判断值a与参数position是否相等来改变convertView的背景色。这样就能简单的实现点击相应每个点击的效果。
在需要adapter的类中,我们可以通过adapter的实例来控制其中设置变量值a的方法来实现对点击所在位置的值的监听。然后通过notifyDataSetChanged()来刷新。
如果上面的都做了以后就基本实现了简单的item点击变换背景的效果了。
在adapter中标识变量:
public void setClick(int position){
a = position;
}
在getView中设置监听:
.....//
在需要adapter的类中:
........//其他代码
//设置适配器
........//其他代码
在getView中设置监听:
public View getView(int position, View convertView, ViewGroupparent) {
.....//
// 点击改变选中Item的背景色
if (a == position) {
convertView.setBackgroundResource(int值);
} else {
convertView.setBackgroundColor(值);
}}
}
在需要adapter的类中:
//initView初始化UI时,GridView监听事件
designOrderGridView.setOnItemClickListener(newOnItemClickListener() {
@Override
public voidonItemClick(
AdapterView<?>
parent, View view, int position,long id
) {
adapter.setClick(position);
adapter.notifyDataSetChanged();
}
});
对上面的代码的一些小解释:
OrderGridView.setOnItemClickListener(newOnItemClickListener() {
@Override
public voidonItemClick(AdapterView<?> parent, View view, int position,
long id)
各项的意义:parent是点击的当前适配器long id)
本文介绍了一种简单的方法,用于在点击GridView的item时更改其背景颜色。通过在Adapter中使用一个变量来跟踪点击的位置,并在getView方法中根据该变量设置背景色。
3974

被折叠的 条评论
为什么被折叠?



