Android--GridView/ListView 点击Item修改Item背景 标识是当前选择项方法

今天项目中遇到一个问题:
工单列表以GridView方式实现,希望点击某一个Item后,点击的Item能变换自己的背景,标识为当前点击项。
经过多次探索,一下方式实现,方便简单:
//适配器(红色为修改处)
public class DesignOrderAdapter extends BaseAdapter {
private List<DesignOrderForm> list = new ArrayList<DesignOrderForm>();
private LayoutInflater mInflater;
private int clickTemp = -1;
public DesignOrderAdapter(DesignOrderActivity designOrderActivity,
List<DesignOrderForm> designOrderList,int clickTemp) {
mInflater = (LayoutInflater) designOrderActivity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
this.list = designOrderList;
this.clickTemp = clickTemp;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return this.list.size();
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return arg0;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
                 //标识选择的Item
public void setSeclection(int position) {
clickTemp = position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
.....//其他代码
// 点击改变选中listItem的背景色
if (clickTemp == position) {
orderlayout.setBackgroundResource(R.drawable.left_list_xuanzhong);
} else {
orderlayout.setBackgroundColor(Color.TRANSPARENT);
}}
                             ..... //其他代码
}


//initView初始化UI时,GridView监听事件
designOrderGridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
                                    ........ //其他代码
                          //设置适配器
designOrderAdapter.setSeclection(arg2);
designOrderAdapter.notifyDataSetChanged();//更新listview
                                   ........ //其他代码
}
});
以下点击每个Item后都会标识成选择项,点击其他Item项后,原Item变成原来未标识。适配器也不会刷新!
附加一个小知识:
designOrderGridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3)
各项的意义: arg0是点击的当前适配器
           arg1是当前item的view,通过它可以获得该项中的各个组件。 
          arg2是当前item的ID。这个id根据你在适配器中的写法可以自己定义。 
          arg3是当前的item在listView中的相对位置!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值