- 浏览: 5777058 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (890)
- WindowsPhone (0)
- android (88)
- android快速迭代 (17)
- android基础 (34)
- android进阶 (172)
- android高级 (0)
- android拾遗 (85)
- android动画&效果 (68)
- Material Design (13)
- LUA (5)
- j2me (32)
- jQuery (39)
- spring (26)
- hibernate (20)
- struts (26)
- tomcat (9)
- javascript+css+html (62)
- jsp+servlet+javabean (14)
- java (37)
- velocity+FCKeditor (13)
- linux+批处理 (9)
- mysql (19)
- MyEclipse (9)
- ajax (7)
- wap (8)
- j2ee+apache (24)
- 其他 (13)
- phonegap (35)
最新评论
-
Memories_NC:
本地lua脚本终于执行成功了,虽然不是通过redis
java中调用lua脚本语言1 -
ZHOU452840622:
大神://处理返回的接收状态 这个好像没有监听到 遇 ...
android 发送短信的两种方式 -
PXY:
拦截部分地址,怎么写的for(int i=0;i<lis ...
判断是否登录的拦截器SessionFilter -
maotou1988:
Android控件之带清空按钮(功能)的AutoComplet ...
自定义AutoCompleteTextView -
yangmaolinpl:
希望有表例子更好。。。,不过也看明白了。
浅谈onInterceptTouchEvent、onTouchEvent与onTouch
只是一个范例,是为了代码快速迭代而写的
使用了listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
效果图
布局:
单个Item布局:item_product_list.xml
选中的背景:bg_item.xml
用法:
Android开发技巧——自定义单选或多选的ListView
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0619/3089.html
ListView多选操作模式详解CHOICE_MODE_MULTIPLE与CHOICE_MODE_MULTIPLE_MODAL
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1105/1906.html
使用了listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
效果图
import java.util.ArrayList; import java.util.List; import android.app.Dialog; import android.content.Context; import android.os.Bundle; import android.util.DisplayMetrics; import android.view.Gravity; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.widget.AdapterView; import android.widget.ListView; import android.widget.Toast; import com.mb.bgfitting.CommonAdapter; import com.mb.bgfitting.ViewHolder; import com.mb.bgfitting.app.R; import com.mb.bgfitting.model.BillSaleDetailInfo; /** * * @author pythoner * */ public class ProductListDialog<T> extends Dialog { private Context context; private ListView listView; private List<T> beans; private List<T> checkedBeans = new ArrayList<T>(); private CommonAdapter<T> adapter; public ProductListDialog(Context context, List<T> beans) { this(context, R.style.Theme_Dialog_NoTitle, beans); // TODO Auto-generated constructor stub } public ProductListDialog(Context context, int theme, List<T> beans) { super(context, theme); // TODO Auto-generated constructor stub this.context = context; this.beans = beans; init(); } private void init() { this.setCanceledOnTouchOutside(true); this.setCancelable(true); } @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.dialog_product_list); initViews(); // initValues(); } private void initViews() { if (beans == null) { return; } findViewById(R.id.btn_ok).setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub if (checkedBeans.size() == 0) { Toast.makeText(context, "请选择至少一件商品", Toast.LENGTH_LONG).show(); return; } if (onOkClickListener != null) { onOkClickListener.onOkClick(v, checkedBeans); } dismiss(); } }); listView = (ListView) findViewById(R.id.listView); listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); listView.setAdapter(adapter = new CommonAdapter<T>(context, beans, R.layout.item_product_list) { @Override public void setValues(ViewHolder helper, T item, final int position) { // TODO Auto-generated method stub if (item instanceof BillSaleDetailInfo) { BillSaleDetailInfo bean = (BillSaleDetailInfo) item; helper.setText(R.id.item_0, bean.getProdName()); helper.setText(R.id.item_1, bean.getColorName()); helper.setText(R.id.item_2, bean.getSizeName()); } } }); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View v, int position, long id) { // TODO Auto-generated method stub T bean = beans.get(position); if (listView.isItemChecked(position)) { checkedBeans.add(bean); } else { if (checkedBeans.contains(bean)) { checkedBeans.remove(bean); } } } }); } private void initValues() { // 不能写在init()中 Window window = getWindow(); WindowManager.LayoutParams lp = window.getAttributes(); DisplayMetrics dm = context.getResources().getDisplayMetrics(); lp.width = dm.widthPixels; lp.gravity = Gravity.BOTTOM; window.setAttributes(lp); } private OnOkClickListener<T> onOkClickListener; public interface OnOkClickListener<T> { public void onOkClick(View v, List<T> list); } public void setOnOkClickListener(OnOkClickListener<T> onOkClickListener) { this.onOkClickListener = onOkClickListener; } }
布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="@dimen/dialog_width" android:layout_height="wrap_content" android:background="@android:color/white" android:orientation="vertical" > <ListView android:id="@+id/listView" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:cacheColorHint="@android:color/transparent" /> <Button android:id="@+id/btn_ok" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:text="确定" android:textSize="@dimen/font_big" /> </LinearLayout>
单个Item布局:item_product_list.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:background="@drawable/bg_item" > <TextView android:id="@+id/item_0" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingTop="8dp" android:paddingBottom="8dp" android:textColor="@color/base_text_black" android:textSize="@dimen/font_middle" android:layout_weight="1" /> <TextView android:id="@+id/item_1" android:layout_width="40dp" android:layout_height="wrap_content" android:paddingTop="8dp" android:paddingBottom="8dp" android:textColor="@color/base_text_black" android:textSize="@dimen/font_middle" /> <TextView android:id="@+id/item_2" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingTop="8dp" android:paddingBottom="8dp" android:layout_weight="1" android:textColor="@color/base_text_black" android:textSize="@dimen/font_middle" /> </LinearLayout>
选中的背景:bg_item.xml
<?xml version="1.0" encoding="UTF-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@color/base_blue" android:state_activated="true"></item> <item android:drawable="@android:color/transparent"/> </selector>
用法:
ProductListDialog<BillSaleDetailInfo> d=new ProductListDialog<BillSaleDetailInfo>(context,billSaleDetailInfos); d.setOnOkClickListener(new ProductListDialog.OnOkClickListener<BillSaleDetailInfo>() { @Override public void onOkClick(View v, List<BillSaleDetailInfo> list) { // TODO Auto-generated method stub addToShoppingCartIfNecessary(list); } }); d.show();
Android开发技巧——自定义单选或多选的ListView
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0619/3089.html
ListView多选操作模式详解CHOICE_MODE_MULTIPLE与CHOICE_MODE_MULTIPLE_MODAL
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1105/1906.html
发表评论
-
工具类之FragmentUtils
2017-04-01 11:37 1649fragment应该是广大Android开发者都用到过的一个v ... -
左中右结构的行布局
2016-12-19 21:35 1141最近项目要开发一个新版本,发现项目中许多布局大致都相同改动不大 ... -
RecyclerView:带header&footer&加载更多
2015-09-09 16:24 2918接上一篇 由简到繁,循序渐进 实现了: 0,点击&长按 ... -
RecyclerView:带header和footer的grid
2015-09-09 13:47 3000知道原理后,为RecyclerView实现同时带header和 ... -
RecyclerView:带header的grid
2015-09-09 13:01 2391RecyclerView是一个高度可定制性的View 本文将使 ... -
iconify使用文本替换icon测试
2015-08-28 17:12 1654源项目地址 https://github.com/JoanZa ... -
快速上传头像到服务端工具类FaceUtil
2015-07-12 14:22 3018快速迭代用 import java.io.DataOut ... -
HorizontalScrollView+RadioGroup+ViewPager+FragmentPagerAdapter基本结构
2015-07-12 13:56 3249快速迭代用 import java.util.Arr ... -
LoadMoreListView+SwipeRefreshLayout(分页下拉)基本结构
2015-07-12 13:07 4107一切为了快速迭代 import java.util. ... -
RadioButton+ViewPager+FragmentPagerAdapter快速搭建页面结构
2015-07-12 11:08 2516一切为了快速开发 开发类似界面 import and ... -
为ViewPager设置CirclePageIndicator(小圆点)
2015-07-03 16:54 15249一切为了快速迭代! import android.con ... -
基于上一篇写的SimplePairListPopupWindow<F,S>
2015-06-19 11:15 1494这次使用Pair<F,S>实现一个简单的Simpl ... -
基于上一篇实现的SimpleListPopupWindow<T>
2015-06-19 11:11 1479这次是个简单的PopupWindow,快速迭代用。 imp ... -
实现一个快速简单的SimpleListDialog<T>
2015-06-19 10:59 1703我写这样的文章都是为了快速迭代,所以都写的比较简单,谅解 此 ... -
为ViewPager设置SimpleViewPagerIndicator
2015-02-14 13:45 4678说到ViewPagerIndicator,网上有很多专门的开源 ... -
一个典型的从下部弹上来的Dialog
2014-12-05 14:47 6007典型的看图 import android.app ...
相关推荐
<label>测试多选渲染:</label> <div> <template v-for=item> <input type=checkbox name=hobby :value=item.id :checked=loopsss.indexOf(item.id) > -1/>{{item.name}} </template> </div> <label>下拉...
【可以多选图片】<br><br>2:选择完图片后,点击下方的Next<br><br>3:选择皮肤 Web Album Skin , 颜色样式Style,图片大小Photos Size, 输出文件路径Output Folder,其他设置略。<br><br>4:设置完毕后点击 Generate ...
C#源码大集合 01(共3卷)<br><br>之前分为四个包,后两个包上传不了,对于已经下载的朋友表示赚意,现在重新再发一次(改为3卷)<br><br><br>├─C#源码第一部分<br>│ ├─第1章 控件操作<br>│ │ ├─实例1 如何...
C#源码大集合 03(共3卷)<br><br>之前分为四个包,后两个包上传不了,对于已经下载的朋友表示赚意,现在重新再发一次(改为3卷)<br><br><br>├─C#源码第一部分<br>│ ├─第1章 控件操作<br>│ │ ├─实例1 如何...
配图列表<br>列表 <br>1 说明<br>1.1 主要的内容<br>1.2 学习目标 <br>2 了解JavaScript 浏览器上的程序语言 <br>2.1 JavaScript 操作对象的简单介绍-- 属性和方法<br>2.2 JavaScript 代码的加入 <br>2.2.1 加入...
爱好(多选):<br /> <select multiple="multiple" size="4"> <!--设置多选和可见选项数--> <option>读书</option> <option selected="selected">写代码</option> <!--设置默认选中项--> <option>旅行</option> ...
catch-finally<br>递归查询<br>传递页面对象的值(如text.value)<br>对字符串的字符集转换<br>列表框(多选)在页面间的传递<br>树的深度算法
由两个<select>标签组成的具有挑选功能的js组建。 可实现左侧的元素移到右侧,右侧移到左侧。 有提交功能。 代码简洁、高效复用性强。 本段代码有Map的遍历读者不必细究。
jQuery Multiple Select实现下拉框多选,请注意是Multiple 。实例介绍详细,想用的可以直接Copy进去用
<br> <br> 简介:<br> <br> PHPwind 支持同一数据库多个论坛运行!<br> <br> 在整体程序上采用先权限验证.再数据库查询.并在各页面保持很低数据库查询次数.<br> <br> 数据库设计上索引与数据库的充分利用避免了不少...
Android 使用DialogFragment 实现一个可以多选的Dialog,实现横竖屏切换动态设置界面大小,轻松实现你想要的效果。
<script type="text/javascript" src="jquery.combo.select.js" ></script> <link rel="stylesheet" href="combo.select.css" /> </head> <body> <select name="table_id" id="table_id"> <option value="">-...
<li><input id="r1" name="r1" type="radio"><label for="r1">Seamlessly visualize quality intellectual capital</label></li> <li><input id="r2" name="r1" type="radio"><label for="r2">...
功能:<br>1 自动抓取网页链接<br>2 对网页链接进行查重、排序、筛选,鼠标+shift多选,鼠标+alt多个删除<br>3 读入链接文件对其自动另存<br>4 对文件按照内容源代码进行截取后自动入库<br>5 自动判断下一页链接来...
GridView实用源码(可以导出Excel)<br><br>VS2005中GridView的自定义分页,单选、多选、排序、自增列及可以导出Excel的简单应用源码<br>多选时,只有全部选中时“多选”才选中<br>数据库文件在DB文件夹中,附加即可
NULL 博文链接:https://ollevere.iteye.com/blog/1718528
这个功能很容易实现,但是在实现过程中,我希望自己的产品使用起来更加的人性化,所有我添加了**多文件压缩打包功能,多选,反选,全选等功能**,这样使用者就可以更加合理选择自己需要的log了。 那么问题来了,**...
jquery实现的多选下拉框ehynds-jquery-ui-multiselect-widget-1.10-3.zip
万韬考试系统是一套可以用于学校、企事业单位和培训机构等在Internet和局域网上实现无纸化考试、帐户管理、题库管理、试卷管理、考试管理,等于一体的集成软件。本软件 提倡 操作简单方便、功能简洁实用、性能安全...
因采用了flash技术,所以界面...<br> 2、内容中显示每个项目占整个项目的百分比。<br> 3、利用饼图清晰形象的表现整个投票系统的情况。<br> 4、防止用户的多次投票。<br> 5、可设置投票项目是否支持多选(2.0版本更新)。