GridView 点击 item 更改状态

这里做个笔记,一般GridView的item点击事件要更改其状态,比如说背景色,或者说选中的item的字体颜色。

mGridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            // view 是整个item的布局
            for(int i=0,len=parent.getCount();i<len;i++){
                View v=parent.getChildAt(i);
                if (position == i) {//当前选中的Item改变背景颜色
//                    view.setBackgroundResource(R.drawable.btn_blue_bg);
                    TextView mChoosedTv = (TextView) view.findViewById(R.id.tv_coin_text);
                    mChoosedTv.setTextColor(ContextCompat.getColor(this,R.color.blue));
                } else {
 //                  v.setBackgroundResource(R.drawable.btn_white_bg);
                    TextView mNormalTv = (TextView) v.findViewById(R.id.tv_coin_text);
                    mNormalTv.setTextColor(ContextCompat.getColor(this,R.color.black));
                }
            }
        }
    });

嘿嘿,开始没有反应过来,parent 是整个GridView的布局,以为是item的布局;
tv_coin_text 这个TextView 是item中的一个控件,这里是为了改变选中状态下这个文本的字体颜色 ;
btn_blue_bg 和 btn_white_bg是个简单的shape,这里就不贴了。

2017-3-27--------------------------------------
如果这时候需要进去就显示默认选中

    for (int i = 0,len=mGridview.getCount();i<len; i++) {
        View v = mGridview.getChildAt(i);
        if (selectedPosition== i) {//选中的Item改变背景颜色
            TextView mChoosedTv = (TextView) v.findViewById(R.id.tv_coin_text);
            mChoosedTv.setTextColor(ContextCompat.getColor(ReleaseWarfareActivity.this, R.color.blue));
        }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容