ListView单选的实现总结(转)
今天在智能停车场项目中需要实现PullToRefreshListView的单选功能,考虑到分页,刷新等,以前的实现方式是采用自己维护一个集合保存选中位置的选中状态,但这个方式比较繁琐,今天采用了listview的单选模式
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);来实现:

package com.centrvideo.parkapp.adapter;
import java.util.List;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import com.centrvideo.parkapp.demain.ExportInfo;
public class ExportAdapter extends MyBaseAdapter<ExportInfo, ListView> {
public ExportAdapter(Context context, List<ExportInfo> list) {
super(context, list);
}
@Override
public View getView(int position, View covertView, ViewGroup group) {
ChoiceListItemView view;
if (covertView == null) {
view = new ChoiceListItemView(context, null);
} else {
view = (ChoiceListItemView) covertView;
}
ExportInfo exportInfo = list.get(position);
view.setData(exportInfo);
return view;
}
}

package com.centrvideo.parkapp.adapter;
import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.CheckBox;
import android.widget.Checkable;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.centrvideo.parkapp.R;
import com.centrvideo.parkapp.demain.ExportInfo;
import com.centrvideo.parkapp.util.ImageLoaderUtils;
import com.lidroid.xutils.ViewUtils;
import com.lidroid.xutils.view.annotation.ViewInject; public class ChoiceListItemView extends LinearLayout implements Checkable { @ViewInject(R.id.listview_export_image)
private ImageView listview_export_image;
@ViewInject(R.id.listview_export_entrytime)
private TextView listview_export_entrytime;
@ViewInject(R.id.listview_export_number)
private TextView listview_export_number;
@ViewInject(R.id.listview_entry_time)
private TextView listview_entry_time;
@ViewInject(R.id.cb_export)
public CheckBox selectBtn;
private ImageLoaderUtils imageLoaderUtils;
public ChoiceListItemView(Context context, AttributeSet attrs) {
super(context, attrs);
LayoutInflater inflater = LayoutInflater.from(context);
View v = inflater.inflate(R.layout.listview_export, this, true);
ViewUtils.inject(v);
imageLoaderUtils = ImageLoaderUtils.newInstance();
} public void setData(ExportInfo exportInfo) {
imageLoaderUtils.loadImage(exportInfo.getEntryimg(),
listview_export_image, R.drawable.cell_hold);
listview_export_entrytime.setText("入口时间:"
+ exportInfo.getEntrytime() + "");
listview_export_number.setText("车牌号码:"
+ exportInfo.getPlatenumber() + "");
listview_entry_time.setText("位置:" + exportInfo.getGatewayname()
+ "");
} @Override
public boolean isChecked() {
return selectBtn.isChecked();
} @Override
public void setChecked(boolean checked) {
selectBtn.setChecked(checked);
//根据是否选中来选择不同的背景图片
if (checked) {
selectBtn.setBackgroundResource(R.drawable.cheliangduibi_queding);
} else {
selectBtn.setBackgroundResource(0);
}
} @Override
public void toggle() {
selectBtn.toggle();
} }

//启用单选模式
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); //获得选中结果;通过listView.getCheckedItemPosition();//活动被选中的位置
case R.id.tv_titlebar_right:
if (CommonUtil.isFastDoubleClick()) {
return;
} int selectPosition = listView.getCheckedItemPosition();
CommonUtil.StartToast(ExportSureListActivity.this,"被选中的位置:"+selectPosition);
ExportInfo exportInfo = list1.get(selectPosition-1);//注意这里需要减1
CommonUtil.StartToast(ExportSureListActivity.this,"被选中的位置:"+exportInfo.toString());
// intent = new Intent(ExportSureListActivity.this,
// ChargeActivity.class);
// startActivity(intent);
break;
}

http://www.cnblogs.com/xiaoxiao-study/p/a1e1561444542d99b70e781be488f35e.html
ListView单选的实现总结(转)的更多相关文章
- listView 单选实现
上一篇知道可以使用android自带的listview的chiocemode的单选模式实现.但那个布局是系统自带的checkedTextView,有时候我们需要自己实现布局,那么下面我们开始实现 ...
- ListView 自己定义BaseAdapter实现单选打勾(无漏洞)
(假设须要完整demo,请评论留下邮箱) (眼下源代码已经不发送.假设须要源代码,加qq316701116.不喜勿扰) 近期由于一个项目的原因须要自己定义一个BaseAdapter实现ListVIew ...
- Android录屏命令、Android录Gif、Android录视频
NoHttp开源地址:https://github.com/yanzhenjie/NoHttp NoHttp具体使用文档已公布,你想知道的全都有,请点我移步! 版权声明:转载请注明本文转自严振杰的博客 ...
- Android在listview添加checkbox实现单选多选操作问题(转)
转自:http://yangshen998.iteye.com/blog/1310183 在Android某些开发需求当中,有时候需要在listveiw中加入checkbox实现单选,多选操作.表面上 ...
- 本地数据下,radiobutton和图片组合,利用adapter+listview进行单选
浮生偷得半日闲,等接口定义的过程中,重新复习下adapter+listview实现单选的方法 主界面 <RelativeLayout xmlns:android="http://sch ...
- ListView 实现多选/单选
http://blog.csdn.net/ljfbest/article/details/40685327 ListView自身带了单选.多选模式,可通过listview.setChoiceMode来 ...
- 【转】ListView与RadioButton组合——自定义单选列表
原文网址:http://blog.csdn.net/checkin001/article/details/11519131 Android自带的RadioButton单选框只支持添加文字,我们自己写A ...
- ListView与RadioButton组合——自定义单选列表
标签: radiobuttonlistviewandroidlayout 2013-09-10 11:13 19396人阅读 评论(8) 收藏 举报 分类: Android(19) 版权声明: ...
- C# winform项目中ListView控件使用CheckBoxes属性实现单选功能
C# winform项目中ListView控件使用CheckBoxes属性实现单选功能 在做项目时需要使用ListView控件的CheckBoxes属性显示,还要在点击行时自动选中CheckBoxes ...
随机推荐
- ICMP协议Ping命令的应用
ICMP的全称是 Internet Control Message Protocol ,它是TCP/IP协议族的一个子协议,属于网络层协议,用于在IP主机.路由器之间传递控制消息.从技术角度来讲,就是 ...
- BrowserSync使用
在Gulp中使用BrowserSync 2016-02-24 23:47 by 那时候的我, 116 阅读, 0 评论, 收藏, 编辑 博客已迁移至http://lwzhang.github.io. ...
- T-SQL基础(2) - 单表查询
开窗函数over select orderid, custid, val, SUM(val) over() as totalvalue, SUM(val) over(partition by cust ...
- UVA - 10118Free Candies(记忆化搜索)
题目:UVA - 10118Free Candies(记忆化搜索) 题目大意:给你四堆糖果,每一个糖果都有颜色.每次你都仅仅能拿随意一堆最上面的糖果,放到自己的篮子里.假设有两个糖果颜色同样的话,就行 ...
- 超赞的.NET办公软件库
之前做项目无意中搜到这个站点,一開始以为是国外大牛们的杰作,然后看到联系地址中竟然是四川成都,喔...咱们中国人跟老美.印度人比起来也非常厉害啊. 这个站点一次性提供了word.excel.ppt.p ...
- 每天进步一点点之SQL 获取表中某个时间字段离当前时间最近的几条
实际中用到的SQL: select * from (select top 3 Id, case when startSignup>GETDATE() then '敬请期待' when (star ...
- [LeetCode257]Binary Tree Paths
题目: Given a binary tree, return all root-to-leaf paths. For example, given the following binary tree ...
- 数据收集程序一般建筑(C++ ACE达到)
数据收集程序一般功能 经socket数据的接收的另一侧.端方能够访问智能电表采集器,你可曾与计算机之间的通信的通信协议(你良好的一致性是谁client,谁是服务端,即数据流) 为收集程序要求 可扩展: ...
- 大哥可以写KMP该——达到strstr()
在最后采访,面试官要求实现strstr(),当场就蒙了. 这个题目是模式匹配问题.<算法导论>里列出了几种字符串匹配算法: 朴素算法 | Rabin-Karp | 有限自己主动机算法 | ...
- Leetcode - Jump Game Two
和Jump Game几乎相同的想法,他们是DP.关键是使用数组maxNumbers[k]储存的地方k步骤的话.序列号的最远范围,注阵maxNumbers[]它递增. class Solution { ...