您的位置:首页 > 移动开发 > Android开发

Android中GridView中Item点击背景图片的显示改变

2012-12-25 17:18 573 查看
今天在看代码的时候发现一个问题。关于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中设置监听:

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是点击的当前适配器
view是当前item的view,通过它可以获得该项中的各个组件。

position是当前item的ID。这个id根据你在适配器中的写法可以自己定义。

id是当前的item在listView中的相对位置!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐