这个文章也许在很多人看来很简单,但是对一些新人来说还是有一点帮助的。笔者是一位应届毕业生。
首先上效果图:
笔者最开始是用textview 做为item 。在进行判断的时候可以改变背景和字体 ,但无法实习多个item的背景改变。最后使用Button写一个shape文件 ,selected为true的时候 solid填充颜色为蓝色 为false的时候是白色 设置每个position的监听的时候 当用户点击项的时候 isselected==false{ 设为true } else { 设为false} 这样你的shape 就会根据你的点击 去进行颜色的变化
作为item下面展示代码 首先是item格式:
背景颜色设置:
字体颜色设置:
在代码里面弄一个集合来添加被选中的标签 用户取消选择了 再把他移除
dmtextadapter=newDanmutextAdapter();
gv.setAdapter(dmtextadapter);
//除去默认的黄色背景
gv.setSelector(newColorDrawable(Color.TRANSPARENT));
gv.setOnItemClickListener(newAdapterView.OnItemClickListener() {
@Override
public voidonItemClick(AdapterView parent, View view,intposition,longid) {
LogUtil.d(">>>>>>>>>>>setOnItemClickListener>>>>>>>>>>>");
Button button = (Button) view.findViewById(R.id.button_test);
if(button.isSelected()==false){
if(limit<4){//现在最多选4个
button.setSelected(true);
map.put(position,datas[position]);//添加
limit++;
LogUtil.d(">>>>>>>>>>>>>>>>>>.选中>>>>>>>>>>>>"+map.toString()+">>>>>>>limit>>>>>>>>>>"+limit);
}
}else{
button.setSelected(false);
//删除指定元素
Iterator> it =map.entrySet().iterator();
intkey =0;
while(it.hasNext())
{
key = it.next().getKey();
if(key == position)
{
it.remove();
}
}
limit--;
LogUtil.d(">>>>>>>>>>>>>>>>>>>>>>.取消>>>>>>>>>>>>>>>>>>>>"+map.toString()+">>>>>>>limit>>>>>>>>>>"+limit);
}
}
网友评论