如图,此布局用GrildView实现,弹出框由Activity的dialog样式实现。

屏蔽系统GrildView点击背景黄色:

grildview.setSelector(new ColorDrawable(Color.TRANSPARENT));

实现数据源自定义Adapter

public class PeoPleNumAdapter extends BaseAdapter {

    public List<PeopleNum> FiltArray;
public static HashMap<Integer, Boolean> isselected;
LayoutInflater inflater;
int pos; public PeoPleNumAdapter(Context context,List<PeopleNum> PeopleNumList,int pos) {
super();
inflater = LayoutInflater.from(context);
this.FiltArray = PeopleNumList;
this.pos = pos;
isselected = new HashMap<Integer, Boolean>();
initData();
} public void initData() {
for (int i = 0; i < FiltArray.size(); i++) {
PeopleNum peo = FiltArray.get(i);
if(i!=pos)
getIsSelected().put(i, false);
else
getIsSelected().put(i, true);
}
} @Override
public int getCount() {
// TODO Auto-generated method stub
return FiltArray.size();
} @Override
public Object getItem(int position) {
// TODO Auto-generated method stub return FiltArray.get(position); } @Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
} @Override
public View getView(int position, View view, ViewGroup parent) {
// TODO Auto-generated method stub if (view == null) { view = inflater.inflate(R.layout.people_grild, null);
TextView spec = (TextView) view.findViewById(R.id.peoplenum);
final ImageView img = (ImageView) view.findViewById(R.id.numselect);
PeopleNum peo = FiltArray.get(position);
spec.setText(peo.getNum());
if (getIsSelected().get(position)) {
img.setVisibility(View.VISIBLE);
} else {
img.setVisibility(View.GONE);
}
}
return view;
} public static HashMap<Integer, Boolean> getIsSelected() {
return isselected;
} public static void setIsSelected(HashMap<Integer, Boolean> isSelect) {
PeoPleNumAdapter.isselected = isSelect;
}
}

Activity中实现点击:

grildview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
PeoPleNumAdapter.getIsSelected().put(position, true);
adapter = new PeoPleNumAdapter(context, PeopleNumList, position);
grildview.setAdapter(adapter);
}
});

Android自定义单选,自定义选中状态的更多相关文章

  1. jquery设置、判断、获取input单选标签选中状态

    1.设置某项单选input为选中状态: $("input[type='radio']").eq(1).attr('checked',true); ②也可设其属性checked为'c ...

  2. 判断单选框选中不成功,$("#xx").attr("checked")undefined

    判断单选框选中状态,各种都不行,受到https://www.cnblogs.com/yxwkf/p/4853014.html 的启发,相关引用: 原来.在jquery1.6版本号便对此做出了改动: [ ...

  3. Android开发技巧——自定义单选或多选的ListView

    这篇其实应该是属于写自定义单选或多选的ListView的基础教程,无奈目前许多人对此的实现大多都绕了远路,反而使得这正规的写法倒显得有些技巧性了. 本文原创,转载请注明在CSDN上的出处: http: ...

  4. Android图表库MPAndroidChart(五)——自定义MarkerView实现选中高亮

    Android图表库MPAndroidChart(五)--自定义MarkerView实现选中高亮 在学习本课程之前我建议先把我之前的博客看完,这样对整体的流程有一个大致的了解 Android图表库MP ...

  5. ListView与RadioButton组合——自定义单选列表

      标签: radiobuttonlistviewandroidlayout 2013-09-10 11:13 19396人阅读 评论(8) 收藏 举报  分类: Android(19)  版权声明: ...

  6. 【Android学习】自定义Android样式checkbox

    下面简单介绍下在Androdi中如何更改Checkbox的背景图片,可以自定义样式 1.首先res/drawable中定义编写如下样式的XML,命名为:checkbox_style: <?xml ...

  7. [android] 手机卫士自定义组合控件

    设置中心 新建SettingActivity 设置GridView条目的点击事件 调用GridView对象的setOnItemClickListenner()方法,参数:OnItemClickList ...

  8. RecyclerViewSelectableAdapterDemo【封装BaseSelectableAdapter用于多选、单选,以及切换选中状态等功能】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 记录封装单选.多选.切换选中状态的BaseSelectableAdapter基类,配合Recyclerview使用. 注意:此Dem ...

  9. 自定义SWT控件一之自定义单选下拉框

    一.自定义下拉控件 自定义的下拉框,是自定义样式的,其中的下拉框使用的是独立的window,非复选框的下拉框双击单机其它区域或选择完之后,独立window构成的下拉框会自动消失. package co ...

  10. Android自定义控件之自定义ViewGroup实现标签云

    前言: 前面几篇讲了自定义控件绘制原理Android自定义控件之基本原理(一),自定义属性Android自定义控件之自定义属性(二),自定义组合控件Android自定义控件之自定义组合控件(三),常言 ...

随机推荐

  1. Java中关于WeakReference和WeakHashMap的理解

    新美大的10月11日的笔试中有一道选择题,让选择函数返回结果,代码如下: private static String test(){ String a = new String("a&quo ...

  2. 学习随笔—Redis常用命令

    info 服务器基本信息 monitor 实时转储收到的请求 flushdb 清空当前数据库 flushall 清空所有数据库 quit 关闭连接 save 将数据同步保持到磁盘 bgsave     ...

  3. 处理 InterruptedException——Brian Goetz

    本文转自Brian Goetz大师在IBM的developerWorks中发布的文章: 中文地址:http://www.ibm.com/developerworks/cn/java/j-jtp0523 ...

  4. cocos2d-x之xml文件读取初试

    auto doc=new tinyxml2::XMLDocument(); doc->Parse(FileUtils::getInstance()->getStringFromFile(& ...

  5. ASP.NET发布网站遇到的几个问题

    环境背景 操作系统:Win7 开发工具:Visual Studio 2013 Framework: Framework 4.0 Issue1: 无法识别的属性“targetFramework” 解决方 ...

  6. jQuery选择器简单例子

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="jQuery_5.aspx. ...

  7. Linux command’s Array

    #数组的声明与遍历 animals=("a dog" "a cat" "a fish") #wrong ways to use this f ...

  8. node.js环境搭建

    (1)Node.js安装 Node.js安装包及源码下载地址为: https://nodejs.org/download/   , 双击下载后的安装包.msi,检查Node.js版本命令:node - ...

  9. spring,hibernate,struts的面试笔试题

    1 Action是不是线程安全的?如果不是 有什么方式可以保证Action的线程安全?如果是,说明原因不是声明局部变量,或者扩展RequestProcessor,让每次都创建一个Action,或者在s ...

  10. QTP 10 安装及破解

    QTP(QuickTest Professional),是一款比较优秀的商业自动化测试工具,主要用于web项目和C/S结构程序的测试. QTP具有的一大特性:关键字驱动测试(keyword-drive ...