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的类, 这个可以在网上(csdn)去下载, 然后添加到自己工程里面就可以了

时间: 2024-08-01 19:28:59

Android WheelView(滑轮组件)使用的相关文章

Android四大基本组件(1)之Activity与BroadcastReceive广播接收器

Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器. 一.Activity (1)应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应. (2)Activity之间通过Intent进行通信.在Intent 的描述结构中,有两个最重要的部分:动作和动作对应的数据. (3)典型的动作类型有:M AIN(activity的门户).VIE

从零开始学android&lt;RatingBar评分组件.二十三.&gt;

如果现在用户要对某个应用程序打分往往会使用图所示的组件,通过选择的"五角星"的个数来决定最终的打分成绩 这样的功能在Android之中,可以使用RatingBar组件实现,使用此组件可以方便用户的输入,而且很直观,RatingBar类的定义结构如下: java.lang.Object ? android.view.View ? android.widget.ProgressBar ? android.widget.AbsSeekBar ? android.widget.RatingBa

Android四大基本组件介绍与生命周期

主要参考: 1.http://blog.csdn.net/android_tutor/article/details/5772285 2.http://www.cnblogs.com/bravestarrhu/archive/2012/05/02/2479461.html Android四大基本组件介绍与生命周期,布布扣,bubuko.com

Android开发四大组件之Service(实例篇)

关于Service的开发详解已经在上一篇:Android开发四大组件之Service(详解篇)讲的很清楚了,本篇主要对Service的开发实例做下讲解. 程序运行效果图: 程序代码: BindService: package com.jph.servicedemo; import android.app.Service; import android.content.Intent; import android.os.Binder; import android.os.IBinder; /**

Android 子Activity组件在进程内的启动过程 &amp;&amp; 子Activity组件在新进程中的启动过程

1.子Activity组件在进程内的启动过程 在Android Activity组件的启动过程http://blog.csdn.net/jltxgcy/article/details/35984557一文中,我们已经详细分析了Activity的启动过程,对于子Activity组件在进程内的启动过程,我们只分析它们之间的不同. 主要是2处,1是不需要创建新的任务栈,2是不需要创建新进程和子线程. 第1点,体现在如下代码上: -/Android/frameworks/base/services/ja

Android中Intent组件详解

Intent是不同组件之间相互通讯的纽带,封装了不同组件之间通讯的条件.Intent本身是定义为一个类别(Class),一个Intent对象表达一个目的(Goal)或期望(Expectation),叙述其所期望的服务或动作.与动作有关的数据等.Android则根据此Intent对象之叙述,负责配对,找出相配的组件,然后将 Intent对象传递给所找到的组件,Android的媒婆任务就完成了. 在Google Doc中是这样描述Intent的(摘自Android中文翻译组)当接收到ContentR

Android 自定义view组件

Android中的组件类似于swxing中的Panel,它只是一片空白区域,对于UI组件来说,只是在其中绘制外观. 开发者可以继承view,自定义自己的组件,然后重写其中的方法: 构造器:当java创建或者xml创建组件时调用 下面通过一个例子,该例子设计一个组件,在手触摸的地方绘制一个圆形: 新建java类,添加如下代码: package com.example.tupianliulanqi; import android.content.Context; import android.gra

Android平台PreferenceActivity组件分析

1.PreferenceActivity 介绍 PreferenceActivity 继承ListActivity 它是以一个列表的形式在展现内容,它最主要的特点是添加Preference可以让控件的状态持久化储存,举个例子 比如用户选中checkbox后 退出应用然后在进入应用,这时用户希望看到的是checkbox被选中,所以软件须要记录用户每次操作的过程并且持久储存,在进入应用的时候须要判断这些久储存的数据然后将系统控件的状态呈现在UI中. 尤其是软件开发肯定会有一堆设置选项选项,每次进入A

Android React Native组件的生命周期及回调函数

熟悉android的童鞋应该都清楚,android是有生命周期的,其很多组件也是有生命周期.今天小编和大家分享的React Native组件的生命周期,还不了解的童鞋,赶紧来围观吧 在android开发中,React Native组件的生命周期,大致分为三个阶段,分别是: 1.组件第一次绘制阶段,这个阶段主要是组件的加载和初始化: 2.组件在运行和交互阶段,这个阶段组件可以处理用户交互,或者接收事件更新界面: 3.组件卸载消亡的阶段,这个阶段主要是组件的清理工作. 在Android React