Android自定义单选,自定义选中状态
如图,此布局用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自定义单选,自定义选中状态的更多相关文章
- jquery设置、判断、获取input单选标签选中状态
1.设置某项单选input为选中状态: $("input[type='radio']").eq(1).attr('checked',true); ②也可设其属性checked为'c ...
- 判断单选框选中不成功,$("#xx").attr("checked")undefined
判断单选框选中状态,各种都不行,受到https://www.cnblogs.com/yxwkf/p/4853014.html 的启发,相关引用: 原来.在jquery1.6版本号便对此做出了改动: [ ...
- Android开发技巧——自定义单选或多选的ListView
这篇其实应该是属于写自定义单选或多选的ListView的基础教程,无奈目前许多人对此的实现大多都绕了远路,反而使得这正规的写法倒显得有些技巧性了. 本文原创,转载请注明在CSDN上的出处: http: ...
- Android图表库MPAndroidChart(五)——自定义MarkerView实现选中高亮
Android图表库MPAndroidChart(五)--自定义MarkerView实现选中高亮 在学习本课程之前我建议先把我之前的博客看完,这样对整体的流程有一个大致的了解 Android图表库MP ...
- ListView与RadioButton组合——自定义单选列表
标签: radiobuttonlistviewandroidlayout 2013-09-10 11:13 19396人阅读 评论(8) 收藏 举报 分类: Android(19) 版权声明: ...
- 【Android学习】自定义Android样式checkbox
下面简单介绍下在Androdi中如何更改Checkbox的背景图片,可以自定义样式 1.首先res/drawable中定义编写如下样式的XML,命名为:checkbox_style: <?xml ...
- [android] 手机卫士自定义组合控件
设置中心 新建SettingActivity 设置GridView条目的点击事件 调用GridView对象的setOnItemClickListenner()方法,参数:OnItemClickList ...
- RecyclerViewSelectableAdapterDemo【封装BaseSelectableAdapter用于多选、单选,以及切换选中状态等功能】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 记录封装单选.多选.切换选中状态的BaseSelectableAdapter基类,配合Recyclerview使用. 注意:此Dem ...
- 自定义SWT控件一之自定义单选下拉框
一.自定义下拉控件 自定义的下拉框,是自定义样式的,其中的下拉框使用的是独立的window,非复选框的下拉框双击单机其它区域或选择完之后,独立window构成的下拉框会自动消失. package co ...
- Android自定义控件之自定义ViewGroup实现标签云
前言: 前面几篇讲了自定义控件绘制原理Android自定义控件之基本原理(一),自定义属性Android自定义控件之自定义属性(二),自定义组合控件Android自定义控件之自定义组合控件(三),常言 ...
随机推荐
- 我为什么用 SQLite 和 FMDB 而不用 Core Data
凭良心讲,我不能告诉你不去使用Core Data.它不错,而且也在变好,并且它被很多其他Cocoa开发者所理解,当有新人加入你的组或者需要别人接手你的项目的时候,这点很重要.更重要的是,不值得花时间和 ...
- Mac OS X 10.10 Yosemite下面解决XAMPP无法开启mysql的问题
首次使用XAMPP但是却遇到一个MySQL无法启动的缘故,不知道怎么解决,经过百度 找到解决方案: 在xampp安装目录下找到xamp这个文件(默认路径是:/Applications/XAMPP/xa ...
- 使用docker搭建lnmp环境
Docker容器LNMP环境搭建 安装 制作镜像 启动并关联实例 安装 系统环境 硬件型号: ThinkPad T520 系统版本: ubuntu 14.04 CPU: i7 RAM: 8G 添加软件 ...
- sgu 104 Little shop of flowers 解题报告及测试数据
104. Little shop of flowers time limit per test: 0.25 sec. memory limit per test: 4096 KB 问题: 你想要将你的 ...
- JavaScript Patterns 2.12 Writing API Docs
Free and open source tools for doc generation: the JSDoc Toolkit (http://code.google.com/p/jsdoc-too ...
- C++分类
VS的ncb.pdb文件分析 在C/C++函数中使用可变参数 #pragma VS查看DLL接口 线程本地存储TLS(Thread Local Storage)的原理和实现--分类和原理
- c#的序列化与反序列化
这是反序列化的代码 using System.Runtime.Serialization.Json; public static T deserialize<T>(String s) { ...
- 湖南师范大学第五届大学生计算机程序设计竞赛--G--修路
题目链接:http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=11464&courseid=132 题目: ...
- python 发送邮件函数模块
发送邮件函数功能 #!/usr/bin/env python # -*- coding:utf-8 -*- import smtplib from email.mime.text import MIM ...
- textarea文本简单样式编辑
第一种方法采用替换:就是将文本域的换号符号\r\n,替换成其他符号,存入数据库,然后显示的时候再转换回来: //转换换行符$str=preg_replace("/\r\n|\r|\n/&qu ...