转载自:http://blog.csdn.net/lyc66666666666/article/details/9219039
android前段组件中, 填表单,选择条目 的样式有很多, WheelView滚动组件为其中一种,如下图所示:
前两种大家很多都用过, 不过我修改了一下,弄出第三种,希望能帮助到大家:
MainActivity.java:
package com.example.wheel_test; import android.app.ActionBar.LayoutParams; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.view.Gravity; import android.view.View; import android.view.View.OnClickListener; import android.widget.LinearLayout; import android.widget.TextView; public class MainActivity extends Activity { 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[] { "礼金", "物品", "慈善捐款", "代付款", "其他.." }, }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final TextView btn = (TextView) findViewById(R.id.test_tv); btn.setOnClickListener(new OnClickListener() { @SuppressWarnings("deprecation") @Override public void onClick(View arg0) { // 创建会话框 final AlertDialog dialog = new AlertDialog.Builder( MainActivity.this).create(); dialog.setTitle("消费类别:"); /** * 创建新布局,最后加入到dialog布局中 */ final LinearLayout ll = new LinearLayout(MainActivity.this); // 设置布局方式:水平 ll.setOrientation(LinearLayout.HORIZONTAL); /** * 增加两个滑轮view */ final WheelView category1 = new WheelView(MainActivity.this); category1.setVisibleItems(5); category1.setCyclic(true); category1.setAdapter(new ArrayWheelAdapter<String>(category_str1)); final WheelView category2 = new WheelView(MainActivity.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; /** * 将滑轮view加入到dialog布局中 */ 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()]; btn.setText(cat1 + ">>" + cat2);//显示选择的内容信息 dialog.dismiss(); } }); dialog.setButton2("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); /** * 把自定义的view加入到dialog布局中 */ dialog.setView(ll); dialog.show(); } }); } }
代码结构:
这里使用dialog的实现方式,你也可以不使用dialog的按钮,标题,整个使用自已定义的布局,可以见另一博文:
http://hz-chenwenbiao-91.iteye.com/blog/2066342
代码见附件
相关推荐
WheelView滑轮效果源码,效果图可以看我的博客。
Wheel实现多选,仿ios的滑轮.用的android滑轮的组件.实现监听选中(选中该选项区别)
WheelView滑轮滚动,可以使用放心下载。
android滑轮WheelView效果,里面有多个例子,密码滚动,选择国家、城市滚动等
滑轮和浮力综合应用.doc
仿Iphone的时间滑轮选择器,比较完整的实现了iphone风格的时间滚动滑轮,滑轮背景风格可以自行设置,效果灰常不错
这时在WheelView的基础上实现的,实现了ListView得滑轮选择效果。
滑轮与滑轮组(初中物理)flash物理课件
行业分类-电子-一种提花机上的电磁阀滑轮组件
电信设备-一种方便物体移动的滑轮组件.zip
江苏省大丰市九年级物理上册11.2滑轮专题3滑轮组综合应用二课程讲义新版苏科版20180817184
江苏省大丰市九年级物理上册11.2滑轮专题2滑轮组综合应用一课程讲义新版苏科版20180817185
Android应用源码之(滑轮关.zip项目安卓应用源码下载Android应用源码之(滑轮关.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考
滑轮及滑轮组练习题.pdf
定滑轮和动滑轮.ppt
可以用之自定义自己的格式,设计滑轮的宽和高,以及滑轮里面的数据,数据修改之后用setadapter就可以了
滑轮自定义的滑轮,用于Android手机,字定义一个滑轮的类