数值选择器(NumberPicker)的功能与用法

2023-12-22 10:58

本文主要是介绍数值选择器(NumberPicker)的功能与用法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!



     数值选择器用于让用户输入数值,用户既可以通过键盘输入数值,也可以通过拖动来选择数值。使用该组件常用如下三个方法。

  • setMinValue(int minVal):设置该组件支持的最小值。
  • setMaxValue(int maxVal):设置该组件支持的最大值。
  • setValue(int value):设置该组件的当前值。

     下面通过一个实例来介绍NumberPicker的功能与用法。

     实例:选择您意向的价格范围

     在该实例中,程序将使用两个NumberPicker来让用户选择价格,第一个NumberPicker用于选择低价,第二个NumberPicker用于选择高价。下面是该实例的布局文件。

     布局文件如下:    

    

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent">
<TableRow android:layout_width="fill_parent"android:layout_height="wrap_content" ><TextView android:text="选择低价:"android:layout_width="120dp"android:layout_height="wrap_content"/><NumberPicker android:id="@+id/np1"android:layout_width="match_parent"android:layout_height="80dp"android:focusable="true"android:focusableInTouchMode="true"/></TableRow><TableRow android:layout_width="fill_parent"android:layout_height="wrap_content"><TextView android:text="选择高价:"android:layout_width="120dp"android:layout_height="wrap_content"/><NumberPicker android:id="@+id/np2"android:layout_width="match_parent"android:layout_height="80dp"android:focusable="true"android:focusableInTouchMode="true"/></TableRow>
</TableLayout>

上面的布局文件中定义了两个NumberPicker,接下来Activity代码需要为这两个NumberPicker设置最小值、最大值,并为他们绑定事件监听器。下面是该Activity的后台代码。

package org.crazyit.helloworld;import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.NumberPicker;
import android.widget.NumberPicker.OnValueChangeListener;
import android.widget.Toast;public class NumberPickerTest extends Activity {NumberPicker np1,np2;//定义最低价格、最高价格的初始值int minPrice=25,maxPrice=75;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.number_picker_test);np1=(NumberPicker)findViewById(R.id.np1);//设置np1的最小值和最大值 np1.setMinValue(10);np1.setMaxValue(50);//设置np1的当前值
        np1.setValue(minPrice);np1.setOnValueChangedListener(new OnValueChangeListener(){
@Overridepublic void onValueChange(NumberPicker picker, int oldVal,int newVal) {// TODO Auto-generated method stubminPrice=newVal;showSelectedPrice();}});np2=(NumberPicker)findViewById(R.id.np2);//设置np2的最小值和最大值  np2.setMinValue(60);np2.setMaxValue(100);//设置np2的当前值
        np2.setValue(maxPrice);
        np2.setOnValueChangedListener(new OnValueChangeListener(){@Overridepublic void onValueChange(NumberPicker picker, int oldVal,int newVal) {// TODO Auto-generated method stubmaxPrice=newVal;showSelectedPrice();}});}private void showSelectedPrice(){Toast.makeText(this, "您选择的价格为:"+minPrice+",最高价格为:"+maxPrice, Toast.LENGTH_SHORT).show();}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.number_picker_test, menu);return true;}}

     上面两段粗体字代码的控制逻辑基本是相似的,它们都调用了NumberPicker的setMinValue()、setMaxValue()来设置该数值选择器的最小值、最大值和当前值。除此之外,程序还为两个日期选择器绑定了事件监听器:当它们的值发生改变时,将会激发相应的事件处理方法。
     运行该程序,并通过NumberPicker选择数值,将可以看到如下效果:

 

  

 

 

这篇关于数值选择器(NumberPicker)的功能与用法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/523690

相关文章

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

Python中logging模块用法示例总结

《Python中logging模块用法示例总结》在Python中logging模块是一个强大的日志记录工具,它允许用户将程序运行期间产生的日志信息输出到控制台或者写入到文件中,:本文主要介绍Pyt... 目录前言一. 基本使用1. 五种日志等级2.  设置报告等级3. 自定义格式4. C语言风格的格式化方法

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

从基础到高级详解Python数值格式化输出的完全指南

《从基础到高级详解Python数值格式化输出的完全指南》在数据分析、金融计算和科学报告领域,数值格式化是提升可读性和专业性的关键技术,本文将深入解析Python中数值格式化输出的相关方法,感兴趣的小伙... 目录引言:数值格式化的核心价值一、基础格式化方法1.1 三种核心格式化方式对比1.2 基础格式化示例

Java中HashMap的用法详细介绍

《Java中HashMap的用法详细介绍》JavaHashMap是一种高效的数据结构,用于存储键值对,它是基于哈希表实现的,提供快速的插入、删除和查找操作,:本文主要介绍Java中HashMap... 目录一.HashMap1.基本概念2.底层数据结构:3.HashCode和equals方法为什么重写Has

Android协程高级用法大全

《Android协程高级用法大全》这篇文章给大家介绍Android协程高级用法大全,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友跟随小编一起学习吧... 目录1️⃣ 协程作用域(CoroutineScope)与生命周期绑定Activity/Fragment 中手

Python异步编程之await与asyncio基本用法详解

《Python异步编程之await与asyncio基本用法详解》在Python中,await和asyncio是异步编程的核心工具,用于高效处理I/O密集型任务(如网络请求、文件读写、数据库操作等),接... 目录一、核心概念二、使用场景三、基本用法1. 定义协程2. 运行协程3. 并发执行多个任务四、关键

基于Java和FFmpeg实现视频压缩和剪辑功能

《基于Java和FFmpeg实现视频压缩和剪辑功能》在视频处理开发中,压缩和剪辑是常见的需求,本文将介绍如何使用Java结合FFmpeg实现视频压缩和剪辑功能,同时去除数据库操作,仅专注于视频处理,需... 目录引言1. 环境准备1.1 项目依赖1.2 安装 FFmpeg2. 视频压缩功能实现2.1 主要功

使用Python实现无损放大图片功能

《使用Python实现无损放大图片功能》本文介绍了如何使用Python的Pillow库进行无损图片放大,区分了JPEG和PNG格式在放大过程中的特点,并给出了示例代码,JPEG格式可能受压缩影响,需先... 目录一、什么是无损放大?二、实现方法步骤1:读取图片步骤2:无损放大图片步骤3:保存图片三、示php