android: WheelView组件(滑轮组件)的应用!
android前段组件中, 填表单,选择条目 的样式有很多, WheelView滚动组件为其中一种,如下图所示:
前两种大家很多都用过, 不过我修改了一下,弄出第三种,希望能帮助到大家:
EditText category = (EditText) findViewById(R.id.editCategory);
category.setOnClickListener(listener); private OnClickListener listener = new OnClickListener() {
@Override
public void onClick(View v) {
// 创建会话框
final AlertDialog dialog = new AlertDialog.Builder(
Set_accountActivity.this).create();
dialog.setTitle("消费类别:"); // 创建布局
final LinearLayout ll = new LinearLayout(Set_accountActivity.this);
// 设置布局方式:水平
ll.setOrientation(LinearLayout.HORIZONTAL); final WheelView category1 = new WheelView(Set_accountActivity.this);
category1.setVisibleItems(5);
category1.setCyclic(true);
category1.setAdapter(new ArrayWheelAdapter<String>(category_str1));
final WheelView category2 = new WheelView(Set_accountActivity.this);
category2.setVisibleItems(5);
category2.setCyclic(true);
category2
.setAdapter(new ArrayWheelAdapter<String>(category_str2[0]));
// 创建参数
LinearLayout.LayoutParams lp1 = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
lp1.gravity = Gravity.LEFT;
//lp1.weight = (float) 0.6;
LinearLayout.LayoutParams lp2 = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
lp2.weight = (float) 0.6;
lp2.gravity = Gravity.RIGHT;
lp2.leftMargin = 10;
ll.addView(category1, lp1);
ll.addView(category2, lp2);
// 为category1添加监听
category1.addChangingListener(new OnWheelChangedListener() {
public void onChanged(WheelView wheel, int oldValue,
int newValue) {
category2.setAdapter(new ArrayWheelAdapter<String>(
category_str2[newValue]));
category2
.setCurrentItem(category_str2[newValue].length / 2);
}
});
// 为会话创建确定按钮
dialog.setButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String cat1 = category_str1[category1.getCurrentItem()];
String cat2 = category_str2[category1.getCurrentItem()][category2
.getCurrentItem()];
category.setText(cat1 + ">>" + cat2);
dialog.dismiss();
}
});
dialog.setButton2("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
dialog.setView(ll);
dialog.show();
}
};
public String category_str1[] = new String[] { " 餐饮 ", " 交通 ",
" 购物 ", " 娱乐 ", " 医疗 ", " 教育 ", " 居家 ", " 投资 ",
" 人情 " };
public String category_str2[][] = new String[][] {
new String[] { " 早餐 ", " 午餐 ", " 晚餐 ", " 夜宵 ", "饮料水果",
" 零食 ", "蔬菜原料", "油盐酱醋", "其他.." },
new String[] { "地铁", "公交", "打的", "加油", "停车", "过路过桥", "罚款", "包养维修",
"火车", "车款车贷", "车险", "航空", "船舶", "自行车", "其他.." },
new String[] { "服装鞋帽", "日用百货", "婴幼用品", "数码产品", "化妆护肤", "首饰", "烟酒",
"电器", "家具", "书籍", "玩具", "摄影文印", "其他.." },
new String[] { "看电影", "KTV", "网游电玩", "运动健身", "洗浴足浴", "茶酒咖啡",
"旅游度假", "演出", "其他.." },
new String[] { "求医", "买药", "体检", "化验", "医疗器材", "其他.." },
new String[] { "培训", "考试", "书籍", "学杂费", "家教", "补习", "助学贷款", "其他.." },
new String[] { "美容美发", "手机电话", "宽带", "房贷", "水电燃气", "物业", "住宿租房",
"保险费", "贷款", "材料建材", "家政服务", "快递邮政", "漏记款", "其他.." },
new String[] { "证券期货", "保险", "外汇", "出资", "黄金实物", "书画艺术", "投资贷款",
"利息支出", "其他.." },
new String[] { "礼金", "物品", "慈善捐款", "代付款", "其他.." }, };
这个组件第二个滚动选择列表会跟随第一个选择列表变, 依赖一些核心代码,核心代码在附件中,大家下载吧(WheelView基础类.zip);
所需依赖文件下载地址:
http://download.csdn.net/download/cjwdts/5681237 :WheelView依赖的java类
http://download.csdn.net/download/cjwdts/5681241:依赖的drawable文件
android: WheelView组件(滑轮组件)的应用!的更多相关文章
- android开发之自定义组件
android开发之自定义组件 一:自定义组件: 我认为,自定义组件就是android给我们提供的的一个空白的可以编辑的图片,它帮助我们实现的我们想要的界面,也就是通过自定义组件我们可以把我们要登入的 ...
- 免费的Android UI库及组件推荐
短短数年时间Android平台就已经形成了一个庞大而活跃的开发者社区.许多社区开发的项目业已进入成熟阶段,甚至可以用于商业的软件生产中,且不用担心质量问题. 本文编译自androiduipattern ...
- Android中Broadcast Receiver组件具体解释
BroadcastReceiver(广播接收器)是Android中的四大组件之中的一个. 以下是Android Doc中关于BroadcastReceiver的概述: ①广播接收器是一个专注于接收广播 ...
- 【Android中Broadcast Receiver组件具体解释
】
BroadcastReceiver(广播接收器)是Android中的四大组件之中的一个. 以下是Android Doc中关于BroadcastReceiver的概述: ①广播接收器是一个专注于接收广播 ...
- Android应用的基本组件介绍和签名Android应用程序
一.Android应用的基本组件介绍 Activity和View :Activity只能通过setContentView(View)来显示指定的组件.View组件是所有UI控件.容器控件的基类,Vi ...
- ReactNative Android之原生UI组件动态addView不显示问题解决
ReactNative Android之原生UI组件动态addView不显示问题解决 版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请表明出处:http://www.cnblogs.com ...
- Android Widget小组件开发(一)——Android实现时钟Widget组件的步骤开发,这些知识也是必不可少的!
Android Widget小组件开发(一)--Android实现时钟Widget组件的步骤开发,这些知识也是必不可少的! PS:学习自某网站(不打广告) 这个小组件相信大家都很熟悉吧,以前的墨迹天气 ...
- Android开发 ---基本UI组件4:拖动事件、评分进度条、圆圈式进度条、进度条控制
Android开发 ---基本UI组件4 1.activity_main.xml 描述: 定义了一个按钮 <?xml version="1.0" encoding=" ...
- 详解Android中的四大组件之一:Activity详解
activity的生命周期 activity的四种状态 running:正在运行,处于活动状态,用户可以点击屏幕,是将activity处于栈顶的状态. paused:暂停,处于失去焦点的时候,处于pa ...
随机推荐
- SuperSocket源码解析之开篇
一 简介 官方介绍:SuperSocket 是一个轻量级, 跨平台而且可扩展的 .Net/Mono Socket 服务器程序框架.你无须了解如何使用 Socket, 如何维护 Socket 连接和 S ...
- android模拟器 一个错误:X Error of failed request: BadRequest (invalid request code or no such operation)
最近ubuntu12.04学习python,python2.7 python3.2所不同的是还是蛮大的.学习思考的新 升级后 结果显示 输入方法不显示 update-manager 和 add- ...
- c语言,动态数组
试着直接malloc一个2*3*4的空间来模拟数组: #include <stdio.h> #include <malloc.h> int main(void) { int** ...
- 纯CSS设置Checkbox复选框控件的样式
Checkbox复选框是一个可能每一个网站都在使用的HTML元素,但大多数人并不给它们设置样式,所以在绝大多数网站它们看起来是一样的.为什么不把你的网站中的Checkbox设置一个与众不同的样式,甚至 ...
- 挺苹果的声音,iPhone 5s的两处进步
苹果iPhone 5s发布后的两处重大进步让我很关注,但看了网上众多网友的点评,又深深的被中国当前手机发烧友圈的这种屌丝文化所震撼,这不是一条正确的道路,这将把中国的手机产业引向歧途,所以我不得不说几 ...
- php连接oracle及简单操作
使你的php支持oracle,按照以下步骤即可: 1.安装php环境,找一下appserv或者xampp,一键安装,很方便 2.把php的ext目录下的php_oci8.dll拷到system32目录 ...
- 继承Application实现Android数据共享
Application类 在Android中,启动一个应用,首先会初始化Application,然后再通过它检查AndroidManifest.xml清单文件,选择须要首先启动的Activi ...
- Winform - TreeView控件,只展开根目录
TreeNode类型是有Expand和ExpandAll这两个方法.而Treeview是只有ExpandAll的,想要展开根目录下面的节点的话 //只展开根目录 ) ].Expand();
- 在WEB工程的web层中的编程技巧
本篇以看传智播客方立勋老师的<JDBC入门>之<实现客户关系管理案例>视频有感,从中提取方老师在设计管理系统的简单案例中对自己比较有用的部分,以便日后在开发过程中希望能有所帮助 ...
- 解决Java compiler level does not match the version of the installed Java project facet.问题
其实之前遇到过Java compiler level does not match the version of the installed Java project facet.这个问题,因为当时没 ...