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自定义控件之自定义组合控件(三),常言 ...
随机推荐
- android创建自定义控件
新建一个布局title.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xm ...
- WebService核心之WSDL深入详解
WebService核心之WSDL深入详解 根据上一篇文章开发的Web Service实例生成的WSDL文档如下: XML里两个属性介绍: targetNamespace 相当于ja ...
- Effective Java 76 Write readObject methods defensively
Principle readObject method is effectively another public constructor, and it demands all of the sam ...
- Navicat for Mysql远程连接数据时报(1045错误)Access denied for user 'root'@'localhost' (using password yes);
原因:用户访问被拒绝,更改用户赋予密码即可 mysql命令行执行语句如下 //使用mysql,读取表信息 //更改用户赋予登录密码 //更新权限 注意点:使用flush privileges是为了刷新 ...
- Github学习之路-初出茅庐,接触Github,了解Github
一.了解GitHub 作为一个在线协作网站,GitHub允许程序员们分享和协力于开源项目的工作. GitHub不仅是一个分享开源创作并与其它程序员合作的好地方,你也可以从GitHub上收到自己作品的 ...
- 卡拉兹(Callatz)猜想
题目描述 卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把(3n+1)砍掉一半.这样一直反复砍下去,最后一定在某一步 得到n=1.卡拉兹在195 ...
- java四舍五入的取舍
一.保留2位小数,且四舍五入 String re = new java.text.DecimalFormat("#.##").format(3.14555); 结果:3.15 二. ...
- Android配置----Eclipse+BlueStacks调试Android应用
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...
- Unity3d+Jenkins 自动编译iOS、Android版本
1.在Unity3d中, 创建导出 iOS.Android 项目脚本 PerformBuild.cs ,放在Editor目录下(必须),如下: using UnityEditor; using Sys ...
- AutoIT 实现Firefox上传文件
Firefox浏览器文件上传代码如下: ;upload file Func _UploadFile($file) AutoItSetOption("WinTitleMatchMode&quo ...