GridView 点击 item 更改状态

作者: NapleC | 来源:发表于2017-03-23 20:10 被阅读234次

这里做个笔记,一般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));
        }
    }

相关文章

网友评论

    本文标题:GridView 点击 item 更改状态

    本文链接:https://www.haomeiwen.com/subject/uhbtottx.html