Dialog+NumberPicker
package com.gtercn.myapplication; import android.app.Activity;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.NumberPicker;
import android.widget.TextView;
import android.widget.Toast; import java.text.SimpleDateFormat;
import java.util.Calendar; public class MainActivity extends Activity {
private Button mButton;
private NumberPicker mCityPicker;
private NumberPicker mCityPicker2;
private NumberPicker mCityPicker3;
private final static String[] CITYS = {"2004", "2006", "2003", "2002", "2001", "2016"};
private final static String[] date = {"5", "6", "7", "8", "9", "10"};
private final static String[] monteh = {"12", "11", "10", "9", "8", "7"};
private int mSeletedIndex;
private int mSeletedIndex2;
private int mSeletedIndex3;
String txt1;
String txt2;
String txt3; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_light);
mButton = (Button) findViewById(R.id.button);
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder7 = new AlertDialog.Builder(
MainActivity.this);
builder7.setTitle("标题");
builder7.setIcon(R.mipmap.ic_launcher);
View view = LayoutInflater.from(MainActivity.this).inflate(
R.layout.activity_main, null);
mCityPicker = (NumberPicker) view.findViewById(R.id.city_picker);
mCityPicker2 = (NumberPicker) view.findViewById(R.id.city_picker2);
mCityPicker3 = (NumberPicker) view.findViewById(R.id.city_picker3);
//设置数据源
mCityPicker.setDisplayedValues(CITYS);
//设置数据长度
mCityPicker.setMinValue(0);
mCityPicker.setMaxValue(CITYS.length - 1);
mCityPicker.setValue(4);
//设置监听
mCityPicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
mSeletedIndex = newVal;
}
});
mCityPicker.setOnScrollListener(new NumberPicker.OnScrollListener() {
@Override
public void onScrollStateChange(NumberPicker view, int scrollState) {
switch (scrollState) {
case NumberPicker.OnScrollListener.SCROLL_STATE_FLING:
Log.e("TAG", "SCROLL_STATE_FLING");
//惯性滑动
break;
case NumberPicker.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:
//手动滑动
Log.e("TAG", "SCROLL_STATE_TOUCH_SCROLL");
break;
case NumberPicker.OnScrollListener.SCROLL_STATE_IDLE:
//停止滑动
Log.e("TAG", "SCROLL_STATE_IDLE");
txt1 = CITYS[mSeletedIndex].toString();
//mTextView.setText(CITYS[mSeletedIndex]); //Toast.makeText(MainActivity.this, CITYS[mSeletedIndex], Toast.LENGTH_SHORT).show();
break;
} }
});
//设置数据源
mCityPicker2.setDisplayedValues(monteh);
//设置数据长度
mCityPicker2.setMinValue(0);
mCityPicker2.setMaxValue(monteh.length - 1);
mCityPicker2.setValue(4);
//设置监听
mCityPicker2.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
mSeletedIndex2 = newVal;
}
});
mCityPicker2.setOnScrollListener(new NumberPicker.OnScrollListener() {
@Override
public void onScrollStateChange(NumberPicker view, int scrollState) {
switch (scrollState) {
case NumberPicker.OnScrollListener.SCROLL_STATE_FLING:
Log.e("TAG", "SCROLL_STATE_FLING");
//惯性滑动
break;
case NumberPicker.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:
//手动滑动
Log.e("TAG", "SCROLL_STATE_TOUCH_SCROLL");
break;
case NumberPicker.OnScrollListener.SCROLL_STATE_IDLE:
//停止滑动
Log.e("TAG", "SCROLL_STATE_IDLE");
txt2 = monteh[mSeletedIndex2];
break;
} }
});
//设置数据源
mCityPicker3.setDisplayedValues(date);
//设置数据长度
mCityPicker3.setMinValue(0);
mCityPicker3.setMaxValue(date.length - 1);
mCityPicker3.setValue(4);
//设置监听
mCityPicker3.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
mSeletedIndex3 = newVal;
}
});
mCityPicker3.setOnScrollListener(new NumberPicker.OnScrollListener() {
@Override
public void onScrollStateChange(NumberPicker view, int scrollState) {
switch (scrollState) {
case NumberPicker.OnScrollListener.SCROLL_STATE_FLING:
Log.e("TAG", "SCROLL_STATE_FLING");
//惯性滑动
break;
case NumberPicker.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:
//手动滑动
Log.e("TAG", "SCROLL_STATE_TOUCH_SCROLL");
break;
case NumberPicker.OnScrollListener.SCROLL_STATE_IDLE:
//停止滑动
Log.e("TAG", "SCROLL_STATE_IDLE");
txt3 = date[mSeletedIndex3];
break;
} }
});
builder7.setView(view);
builder7.setPositiveButton("确定",
new android.content.DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Toast.makeText(
MainActivity.this,
txt1 + txt2 + txt3, Toast.LENGTH_LONG)
.show();
}
});
builder7.setNegativeButton("取消",
new android.content.DialogInterface.OnClickListener() { @Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub }
});
builder7.create();
builder7.show();
}
});
}
}
布局文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:orientation="horizontal"
android:gravity="center_vertical"> <NumberPicker
android:id="@+id/city_picker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></NumberPicker> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="年"
android:layout_marginLeft="10dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:orientation="horizontal"
android:gravity="center_vertical"> <NumberPicker
android:id="@+id/city_picker2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></NumberPicker> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="月"
android:layout_marginLeft="10dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:orientation="horizontal"
android:gravity="center_vertical"> <NumberPicker
android:id="@+id/city_picker3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></NumberPicker> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="日"
android:layout_marginLeft="10dp"/>
</LinearLayout>
</LinearLayout> </RelativeLayout>
先附上效果图片

Dialog+NumberPicker的更多相关文章
- 3java面试题 传智 发的 有用
第一章内容介绍 20 第二章JavaSE基础 21 一.Java面向对象 21 1. 面向对象都有哪些特性以及你对这些特性的理解 21 2. 访问权限修饰符public.private.protect ...
- 使用NumberPicker定制自己喜欢的Date&TimePicker
1.NumberPicker简介: NumberPicker是Android3.0之后引入的一个控件,主要功能是用于选择一组预定义好数字的控件. 该控件主要需要指导一个用于监听当前value变化的li ...
- Android使用NumberPicker控件实现选择城市,生日
本人菜鸟一枚,第一次写技术博客,有点小紧张,加上代码很乱,求不喷. 先放效果图: 界面就这么简单. 然后放上代码: package com.example.dialog; import java.ut ...
- 底部菜单实现(Dialog方案)
项目中经常会要实现在屏幕底部弹出一个窗口,比如一个分享窗口: 下面详解实现步骤: 1.定义布局 <?xml version="1.0" encoding="utf- ...
- Android日期对话框NumberPicker的使用方法教程
NumberPicker是Android3.0之后引入的一个控件.NumberPicker 是用于选择一组提前定义好数字的控件.比方时间hour的选择仅仅有0-23有效,则能够通过setMinValu ...
- 使用MonoTouch.Dialog简化iOS界面开发
MonoTouch.Dialog简称MT.D,是Xamarin.iOS的一个RAD工具包.它提供易于使用的声明式API,不需要使用导航控制器.表格等ViewController来定义复杂的应用程序UI ...
- 2000条你应知的WPF小姿势 基础篇<78-81 Dialog/Location/WPF设备无关性>
在正文开始之前需要介绍一个人:Sean Sexton. 来自明尼苏达双城的软件工程师.最为出色的是他维护了两个博客:2,000ThingsYou Should Know About C# 和 2,00 ...
- Android PopupWindow Dialog 关于 is your activity running 崩溃详解
Android PopupWindow Dialog 关于 is your activity running 崩溃详解 [TOC] 起因 对于 PopupWindow Dialog 需要 Activi ...
- 三个不常用的HTML元素:<details>、<summary>、<dialog>
前面的话 HTML5不仅新增了语义型区块级元素及表单类元素,也新增了一些其他的功能性元素,这些元素由于浏览器支持等各种原因,并没有被广泛使用 文档描述 <details>主要用于描述文档或 ...
随机推荐
- winform,wpf,winrt获取屏幕分辨率
winform 当前的屏幕除任务栏外的工作域大小 this.Width = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Widt ...
- java 入门 第二季3
1.继承 1.java是单继承的,一个子类只有一个父类 父类,基类 子类,派生类 2.继承的好处:子类拥有父类的所有属性和方法,属性的修饰符不能是private 3.语法规则: class 子类 ex ...
- July 5th, Week 28th Tuesday, 2016
If you smile when no one else is around, you really mean it. 独处的时候你的笑容才是发自内心的笑容. Human beings are so ...
- 项目之solr全文搜索工具的安装
1. Solr简介 Solr是一个基于Lucene的Java搜索引擎服务器.Solr 提供了层面搜索.命中醒目显示并且支持多种输出格式(包括 XML/XSLT 和 JSON 格式).它易于安装和配置, ...
- android DisplayMetrics 获取屏幕分辨率
Android 提供DisplayMetircs 类可以很方便的获取分辨率.下面介绍 DisplayMetics 类: Andorid.util 包下的DisplayMetrics 类提供了一种关于显 ...
- 二、JavaScript语言--JS基础--JavaScript进阶篇--DOM对象 控制HTML元素
1.认识DOM 文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法.DOM 将HTML文档呈现为带有元素.属性和文本的树结构(节点树). 先来看看下面 ...
- 两个viewport的故事(第二部分)
原文:http://www.quirksmode.org/mobile/viewports2.html 在这个迷你系列的文章里边我将会解释viewport,以及许多重要元素的宽度是如何工作的,比如&l ...
- Enter password for default keyring to unlock
file /home/ok/.gnome2/keyrings/login.keyring /home/ok/.gnome2/keyrings/login.keyring: GNOME keyring, ...
- SQL错误级别 状态 怎么定义
关于SQL Server的错误严重性级别的说明,强烈认真看一下下面的两个链接 脱机帮助 ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/sqlerrm9/html/ ...
- 【JAVA多线程概述】
一.多线程概述 一个进程中至少有一个线程,每一个线程都有自己运行的内容,这个内容可以称为线程要执行的任务. 不能没一个问题都使用多线程,能使用单线程解决的问题就不要使用多线程解决. 使用多线程的弊端: ...