《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提示。

相关文章
|
12天前
|
XML 存储 Java
浅谈Android的TextView控件
浅谈Android的TextView控件
12 0
|
1月前
|
XML 编解码 Android开发
安卓开发中的自定义视图控件
【9月更文挑战第14天】在安卓开发中,自定义视图控件是一种高级技巧,它可以让开发者根据项目需求创建出独特的用户界面元素。本文将通过一个简单示例,引导你了解如何在安卓项目中实现自定义视图控件,包括创建自定义控件类、处理绘制逻辑以及响应用户交互。无论你是初学者还是有经验的开发者,这篇文章都会为你提供有价值的见解和技巧。
37 3
|
3月前
|
Java Android开发 Spring
Android Spingboot 实现SSE通信案例
【7月更文挑战第14天】以下是使用Android和Spring Boot实现SSE(Server-Sent Events)通信的案例摘要: 在`MainActivity`中: - 初始化界面元素并设置按钮点击事件。 - `startSseRequest`方法创建`WebClient`对象,设置请求头,发送请求,并处理响应和错误。 请确保将`your-server-url`替换为实际的服务器地址。
96 14
|
2月前
|
前端开发 Android开发 开发者
安卓开发中的自定义视图:构建你的第一个控件
【8月更文挑战第26天】在安卓开发的浩瀚海洋中,自定义视图是一块充满魔力的乐土。它不仅是开发者展示创造力的舞台,更是实现独特用户体验的关键。本文将带你步入自定义视图的世界,从基础概念到实战应用,一步步教你如何打造自己的第一个控件。无论你是初学者还是有经验的开发者,这篇文章都将为你的开发之旅增添新的风景。
|
3月前
|
Java Android开发 C++
🚀Android NDK开发实战!Java与C++混合编程,打造极致性能体验!📊
【7月更文挑战第28天】在 Android 开发中, NDK 让 Java 与 C++ 混合编程成为可能, 从而提升应用性能。**为何选 NDK?** C++ 在执行效率与内存管理上优于 Java, 特别适合高性能需求场景。**环境搭建** 需 Android Studio 和 NDK, 工具如 CMake。**JNI** 构建 Java-C++ 交互, 通过声明 `native` 方法并在 C++ 中实现。**实战** 示例: 使用 C++ 计算斐波那契数列以提高效率。**总结** 混合编程增强性能, 但增加复杂性, 使用前需谨慎评估。
129 4
|
4月前
|
JSON Java API
【Android】使用 Retrofit2 发送异步网络请求的简单案例
**摘要:** Retrofit是Android和Java的HTTP客户端库,简化了RESTful API交互。它通过Java接口定义HTTP请求,并提供注解管理参数、HTTP方法等。要使用Retrofit,首先在AndroidManifest.xml中添加`INTERNET`权限,然后在`build.gradle`中引入Retrofit和Gson依赖。创建服务器响应数据类和描述接口的接口,如`Result`和`Api`。通过Retrofit.Builder配置基础URL并构建实例,之后调用接口方法创建Call对象并发送异步请求。
170 1
|
4月前
|
Java Android开发
18. 【Android教程】图片控件 ImageView
18. 【Android教程】图片控件 ImageView
68 4
|
3月前
|
XML 数据格式
Android-自定义三角形评分控件
Android-自定义三角形评分控件
37 0
|
4月前
|
前端开发 API Android开发
25. 【Android教程】列表控件 ListView
25. 【Android教程】列表控件 ListView
119 2
|
4月前
|
XML Android开发 数据格式
Android基础控件介绍
Android基础控件介绍