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