《Android 平板电脑开发实战详解和典型案例》——2.5节数字选择控件—— NumberPiker-阿里云开发者社区

开发者社区> 异步社区> 正文

《Android 平板电脑开发实战详解和典型案例》——2.5节数字选择控件—— NumberPiker

简介:
+关注继续查看

本节书摘来自异步社区《Android 平板电脑开发实战详解和典型案例》一书中的第2章,第2.5节数字选择控件—— NumberPiker,作者 吴亚峰 , 杜化美 , 索依娜,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.5 数字选择控件—— NumberPiker
Android 平板电脑开发实战详解和典型案例
上一节中,介绍了ActionBar的基本知识及简单案例,本节将介绍Android 3.0新增控件数字选择控件NumberPicker,主要内容包括其基本知识以及一个简单的案例。

2.5.1 数字选择控件基本知识
数字选择控件NumberPiker可以理解成由两个Button中夹着一个EditText组成,EditText用来显示数字,而两个Button按钮则控制EditText中数字的增减。数字选择控件NumberPiker继承自LinrearLayout,其继承树如图2-24所示。


cb0d53dce4b0b2a2972aba3114e236fe36ffdd9b

2.5.2 数字选择控件使用案例
通过前面的基本知识,读者对提供数字选择控件NumberPicker的基本知识已经有了简单的了解,下面通过案例Sample2_7使读者进一步掌握数字选择控件NumberPicker的使用,在正式介绍此案例的开发步骤之前首先请读者了解一下此案例的运行效果,如图2-25、图2-26和图2-27所示。


cbda683f109878e17db9ecf43f5f8772fd5744fc

图2-25、图2-26和图2-27分别为程序运行的初始界面和单击体重和年龄的“+”按钮后的运行效果图。
了解了案例的运行结果之后,下面开始介绍案例的开发,具体步骤如下。

(1)首先需要编写的是配置文件numberpicker_layout.xml,其代码如下。

1 <?xml version="1.0" encoding="UTF-8"?>
2 <LinearLayout
3  xmlns:android="http://schemas.android.com/apk/res/android"
4  android:layout_width="match_parent"            <!--匹配父控件-->
5  android:layout_height="match_parent"            <!--匹配父控件-->
6  android:orientation="vertical"               <!--垂直排序-->
7  android:background="#ffffff">                <!--设置背景颜色-->
8  <TextView 
9   android:text="@string/hourset"             <!--设置文本-->
10   android:textSize="40dip"                 <!--设置字体大小-->
11   android:textColor=”@color/white”            <!--设置字体颜色--> 
12   android:layout_width=" wrap_content "         <!--宽度自身决定-->
13      android:layout_height="wrap_content"       <!--高度自身决定-->
14      android:gravity="center_horizontal"/>      <!--设置屏幕中间-->
15  <LinearLayout 
16   android:layout_width="fill_parent"            <!--填充父控件-->
17   android:layout_height="wrap_content"           <!--高度自身决定-->
18   android:orientation="horizontal">            <!--水平排序->
19  <TextView 
20   android:text="@string/height"               <!--设置文本-->
21      android:textSize="30dip"             <!--设置字体大小-->
22   android:textColor=”@color/white”             <!--设置字体颜色-->
23   android:layout_width="wrap_content"           <!--宽度自身决定-->
24   android:layout_height="wrap_content"/>          <!--高度自身决定-->
25  <NumberPicker 
26   android:id="@+id/numberPicker1"              <!--设置ID-->
27   android:layout_width="200dip"               <!--设置宽度-->
28   android:layout_height="200dip"               <!--设置高度-->
29   android:focusable="true"         
30   android:focusableInTouchMode="true"/>
31    ……//以下代码与上面基本相似,故此处省略,读者有需要可自行查看随书光盘的源代码
32   </LinearLayout>
33 </LinearLayout>

界面的开发比较简单,在主的LinearLayout中加入一个TextView和一个子LinearLayout,并在子LinearLayout中添加了3个TextView和NumberPicker的组合。
(2)完成了numberpicker_layout.xml文件的开发后,下面将要开发的是主Activity对应的类NumberPickerActivity,其代码如下。

1 package com.bn.sample2_7;                //声明包 
2 ……//该处省略了部分类的导入代码,读者可自行查看随书光盘中的源代码
3 public class NumberPickerActivity extends Activity {
4  NumberPicker mNumberPicker1 = null;
5  NumberPicker mNumberPicker2 = null;
6  NumberPicker mNumberPicker3 = null;
7  @Override
8  protected void onCreate(Bundle savedInstanceState) {
9   super.onCreate(savedInstanceState);
10       setTheme(R.style.mytheme1);
11   setContentView(R.layout.numberpicker_layout);   //设置界面布局
12   mNumberPicker1=(NumberPicker) findViewById(R.id.numberPicker1);获取数字选择控件对象
13   mNumberPicker1.setLeft(0);      //设置当前控件在其父控件中的相对位置,单位是像素
14   mNumberPicker1.setMaxValue(220);   //设置控件中数字的最大值
15   mNumberPicker1.setValue(170);     //设置控件中数字的默认值
16                       //给数字选择控件添加监听器
17   mNumberPicker1.setOnValueChangedListener(new OnValueChangeListener() {
18  @Override                  //当数值选择控件中数字的值改变时自动提示的信息
19  public void onValueChange(NumberPicker picker, int oldVal, int newVal) { 
20   Toast.makeText(NumberPickerActivity.this,getString(R.string.height)
21   +picker.getValue()+"cm", Toast.LENGTH_SHORT).show();}});
22   ……//以下代码与上面基本相似,故此处省略,读者有需要可自行查看随书光盘的源代码
23 }} }

第4~6行表示的是声明3个NumberPicker的引用。第10~12行为设置主题和当前界面布局并获取数字选择控件对象。
第13~15行为对数字化选择控件基本参数进行了设置,第17~23行表示给数字选择控件添加监听器,实现每次数字选择控件的值改变的时候自动出现Toast提示。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【技术贴】同一局域网内电脑或者手机ping不通对方的解决办法
查看是否开启了360局域网隐身。360--功能大全--流量防火墙---局域网保护---局域网隐身---关闭即可。 刚才想用手机测试下自己做的网页,死活输入ip加端口号就是访问不到电脑的tomcat,后来发现原来是我以前在360里面设置开了隐身功能,关掉就ok了!
1553 0
首发福利!全球第一开源ERP Odoo系统架构部署指南 电子书分享
引言 Odoo,以前叫OpenERP,是比利时Odoo S.A.公司开发的一个企业应用软件套件,开源套件包括一个企业应用快速开发平台,以及几千个Odoo及第三方开发的企业应用模块。Odoo适用于各种规模的企业应用。
4185 0
+关注
异步社区
异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
12049
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载