NumberPicker的用法

说明:NumberPicker:数字选择器,是3.0以后引入的组件,可以通过其做些数字的滑动选择,也可以用其做一些定时器的应用,该篇是平时学习中的一些心得和小结,以及写得一些小例子,第一次写博客,如有错误请给予指正。

Java代码中:

1.声明NumberPicker控件

2.获得NumberPicker的对象以及设置相关的参数:

setMaxValue();//设置最大显示

setMinValue();//设置最小显示

setValue(); //设置当前显示

setFocusable(true);//控件设置成可获取焦点状态

setFocusableInTouchMode(true);//触摸是否能获得焦点

3.设置监听器Listener

setOnValueChangedListener(OnValueChangeListener

onValueChangeListener );

比如例子中设置的是:setOnValueChangedListener(numChangedListener);

4.NumberPicker.OnValueChangeListener

其函数 public void onValueChange(NumberPicker arg0, int arg1, int arg2)

//arg1:oldValue 前一个选中的值;arg2:newValue当前选中的值。

例子中:

private NumberPicker.OnValueChangeListener numChangedListener = new OnValueChangeListener() {

@Override

public void onValueChange(NumberPicker arg0, int arg1, int arg2) {

// TODO Auto-generated method stub

num = numberpicker1.getValue();

switch (num) {

}

}

};

实例代码:星座判断

MainActivity.java

public class MainActivity extends Activity {

//numberpicker1 简单的NumberPicker的操作

private NumberPicker numberpicker1;

//numberpicker2,numberpicker3是星座month和day

private NumberPicker numberpicker2;

private NumberPicker numberpicker3;

private ImageView image;

private TextView text;

private TextView text1;

private int num;

int month;

int day;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

numberpicker1 = (NumberPicker) findViewById(R.id.numberpicker1);

numberpicker1.setMaxValue(38);

numberpicker1.setMinValue(1);

numberpicker1.setValue(num);

numberpicker1.setFocusable(true);

numberpicker1.setFocusableInTouchMode(true);

numberpicker1.setOnValueChangedListener(numChangedListener);

/*/

* setMaxValue() 设置最大值

* setMaxValue() 设置最小值

* setValue() 设置当前值

* setFocusable(true) 设置可获得焦点

* setFocusableInTouchMode(true) 设置触摸可以获得焦点

*/

numberpicker2 = (NumberPicker) findViewById(R.id.numberpicker2);

numberpicker2.setMaxValue(12);

numberpicker2.setMinValue(1);

numberpicker2.setValue(month);

numberpicker2.setFocusable(true);

numberpicker2.setFocusableInTouchMode(true);

numberpicker2.setOnValueChangedListener(monthChangedListener);

/*/

* setMaxValue根据每月的天数不一样,使用switch()进行分别判断

*/

numberpicker3 = (NumberPicker) findViewById(R.id.numberpicker3);

numberpicker3.setMinValue(1);

numberpicker3.setValue(day);

numberpicker3.setFocusable(true);

numberpicker3.setFocusableInTouchMode(true);

numberpicker3.setOnValueChangedListener(dayChangedListener);

image = (ImageView) findViewById(R.id.image);

text = (TextView) findViewById(R.id.text);

text1 = (TextView) findViewById(R.id.textxing);

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

private NumberPicker.OnValueChangeListener numChangedListener = new OnValueChangeListener() {

@Override

public void onValueChange(NumberPicker arg0, int arg1, int arg2) {

// TODO Auto-generated method stub

num = numberpicker1.getValue();

switch (num) {

case 1:

image.setBackgroundResource(R.drawable.a);

text.setText("李");

break;

case 2:

image.setBackgroundResource(R.drawable.b);

text.setText("狗");

break;

case 3:

image.setBackgroundResource(R.drawable.c);

text.setText("蛋");

break;

default:

break;

}

}

};

private NumberPicker.OnValueChangeListener monthChangedListener = new OnValueChangeListener() {

@Override

public void onValueChange(NumberPicker arg0, int arg1, int arg2) {

// TODO Auto-generated method stub

month = numberpicker2.getValue();

xingzuo();

switch (month) {

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

numberpicker3.setMaxValue(31);

break;

case 2:

numberpicker3.setMaxValue(29);

break;

case 4:

case 6:

case 9:

case 11:

numberpicker3.setMaxValue(30);

break;

default:

break;

}

}

};

private NumberPicker.OnValueChangeListener dayChangedListener = new OnValueChangeListener() {

@Override

public void onValueChange(NumberPicker arg0, int arg1, int arg2) {

// TODO Auto-generated method stub

day = numberpicker3.getValue();

xingzuo();

}

};

// 对获得的month 和 day 进行处理

void xingzuo() {

if ((month == 1 && day > 19) || (month == 2 && day < 19)) {

text1.setText("水瓶座");

} else if ((month == 2 && day > 18) || (month == 3 && day < 21)) {

text1.setText("双鱼座");

}

else if ((month == 3 && day > 20) || (month == 4 && day < 20)) {

text1.setText("白羊座");

} else if ((month == 4 && day > 19) || (month == 5 && day < 21)) {

text1.setText("金牛座");

} else if ((month == 5 && day > 20) || (month == 6 && day < 22)) {

text1.setText("双子座");

} else if ((month == 6 && day > 21) || (month == 7 && day < 23)) {

text1.setText("巨蟹座");

} else if ((month == 7 && day > 22) || (month == 8 && day < 23)) {

text1.setText("狮子座");

} else if ((month == 8 && day > 22) || (month == 9 && day < 23)) {

text1.setText("处女座");

} else if ((month == 9 && day > 22) || (month == 10 && day < 24)) {

text1.setText("天秤座");

} else if ((month == 10 && day > 23) || (month == 11 && day < 23)) {

text1.setText("天蝎座");

} else if ((month == 11 && day > 22) || (month == 12 && day < 22)) {

text1.setText("射手座");

} else if ((month == 12 && day > 21) || (month == 1 && day < 20)) {

text1.setText("摩羯座");

}

}

}

activity_main.xml 布局文件

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

tools:context=".MainActivity" >

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="horizontal" >

android:id="@+id/numberpicker1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginLeft="25dp"

android:layout_marginTop="30dp" />

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="vertical" >

android:id="@+id/image"

android:layout_width="100dp"

android:layout_height="100dp"

android:layout_marginLeft="47dp"

android:layout_marginTop="20dp" />

android:id="@+id/text"

android:layout_width="88dp"

android:layout_height="22dp"

android:layout_marginLeft="55dp"

android:layout_marginTop="20dp"

android:gravity="center" />

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="horizontal" >

android:id="@+id/numberpicker2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginLeft="25dp"

android:layout_marginTop="30dp" />

android:id="@+id/numberpicker3"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginLeft="25dp"

android:layout_marginTop="30dp" />

android:id="@+id/textxing"

android:layout_width="88dp"

android:layout_height="22dp"

android:layout_gravity="center"

android:layout_marginLeft="10dp" />

静态效果图:

源码下载位置 http://download.csdn.net/detail/u010881221/8298155

如何从英特尔® INDE测试版过渡到英特尔® INDE 2015版?

作者:KarthiyayiniChinnaswamy本文将为您介绍从英特尔®INDE测试版项目过渡到英特尔®INDE2015版的所需步骤。在从INDE测试版升级到INDE2015版之前,了解这两种

Mono 平台 安卓 APP 菜单栏制作

介绍安卓APP底布菜单的制作效果图如下:现在开始上Ui设计的代码:Main.axml?xmlversion=1.0encoding=utf-8?LinearLayoutxmlns:android=http://schemas.android.com/apk/res/androidandroi

android的一个小问题,activity暂停数秒后自动进入另一个activity

初学安卓,第一踩做安卓app,遇到的第一个问题就是首页显示后,停止若干秒,然后自动跳转到下一页一开始以为很简单,只要onCreate()方法里面让sleep

android用出生日期显示星座代码,安卓 NumberPicker使用说明以及实例:星座判断相关推荐

  1. android手机通讯录备份还原代码,安卓手机误删联系人恢复及备份技巧总汇

    原标题:安卓手机误删联系人恢复及备份技巧总汇 现在很多手机都不再提供将联系人存入SIM卡中的功能了,所以如果你还习惯性的将联系人储存在手机内存当中,一旦手机丢失或者手机数据遗失,那么少则几十动辄几百的 ...

  2. android手机应用字体颜色代码,安卓手机字体颜色修改教程

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 先说好哦 我只是搬运而已 没这么强大的技术 反编译framework-res.apk 得到framework-res文件夹! 修改里面的文件, 找到(如何 ...

  3. android 标题栏进度圈使用方法,Android 自定义标题栏 显示网页加载进度的方法实例...

    这阵子在做Lephone的适配,测试组提交一个bug:标题栏的文字较长时没有显示完全,其实这并不能算个bug,并且这个问题在以前其他机器也没有出现,只是说在Lephone的这个平台上显示得不怎么美观, ...

  4. 安卓怎么显示一段html代码,【报Bug】点击安卓源生返回键 会导致页面崩溃直接显示HTML代码...

    详细问题描述 [内容] 主页面,设置标签 href="XXXX"跳转到子页面.在点击安卓手机源生的返回.就会有一定几率显示HTML代码而不显示页面 [步骤] 主页面,设置标签 hr ...

  5. 安卓视频播放器 一行代码快速实现视频播放,Android视频播放,AndroidMP3播放,安卓视频播放一行代码搞定,仿今日头条 Android视频播放器

    一行代码快速实现视频播放,Android视频播放,AndroidMP3播放,安卓视频播放一行代码搞定,真正实现Android的全屏功能 github地址:https://github.com/qius ...

  6. 12星座代码c语言,安卓项目开发实战(2)--星座展示12宫格(示例代码)

    package com.liuc.constatntEnum; import com.liuc.R; /** * 星座枚举 * * @author Administrator * */ public ...

  7. android字体有些显示不正常显示,为什么iconfont字体图标在安卓机上显示不出来

    模拟器和ios上都能正常显示,但安卓机上显示不了,准确地说显示为一个带框的X css代码如下: @font-face { font-family: "iconfont"; src: ...

  8. android 代码调用xml,显示国家/地区及其调用代码,但使用Android XML返回其缩写代码...

    我终于可以在不使用数据库的情况下做到这一点.我正在写下这些步骤,以便它可以帮助需要同一件事的任何其他人. 除我需要的字段外,我删除了所有其他字段.它给了我3个字段:名称,缩写和调用代码. String ...

  9. [安卓基础] 008.Android中的显示单位

    Android中的显示单位 px (pixels)像素 一般HVGA代表320x480像素,这个用的比较多. dip或dp (device independent pixels)设备独立像素 这个和设 ...

最新文章

  1. (C++)CSP 201712-2 游戏
  2. [c++]引入了头文件和动态库,为什么找不到函数实现
  3. Java位运算在程序设计中的使用:位掩码(BitMask)
  4. linux中分区乱了,找到了linux分区顺序错乱修复方法
  5. 【加速实践】番外篇:numbajit
  6. ecshop分页类assign_pager分析和扩展
  7. USB OTG 的进一步理解
  8. 腾讯手机管家筹划“出海”
  9. 自定义标签之 带Body的标签库
  10. python selenium语法_Python+Selenium基本语法
  11. Excel Home 数据透视表初级班(10118班)小结第四课时
  12. 让你搞懂 administrator最高权限
  13. office2003和office2007及office2010共存的方法
  14. 《回炉重造》——注解
  15. AutoCAD(2014) Ribbon不见
  16. 【vue】实现多个路由共享同一个页面
  17. 网络组建大全(包括企业网、校园网、网吧和基础知识)(转)
  18. 【分享】关闭科学上网后网络连接故障
  19. 13 ,CSS 入门基础,行内排版内嵌式排版和外部排版样式
  20. linux下yum源配置

热门文章

  1. Eclipse EMT Papyrus建模和MoDisco反向工程
  2. 安科瑞基于物联网技术的智能电力抄表服务平台-Susie 周
  3. 八代i7装服务器系统2012,为何八代CPU安装Win7系统失败,三种方式、两个重点,你学会了吗...
  4. HBase的CRUD的Java Api操作
  5. java难学吗 知乎_java好学吗?java是不是最难学的语言?
  6. 10分钟速通人工智能导论
  7. 2×500kVA(RCS9000)某10kV配电室设计(任务书+说明书+cad图纸)
  8. 西门子程序组织块功能详细介绍
  9. 数据表的基础操作(五)数据的修改
  10. js写轮播图(左右箭头)