android之timePicker

本文介绍了一个简单的Android应用,该应用使用TimePickerDialog组件让用户能够选择时间。通过MainActivity类的定义,展示了如何创建按钮并设置监听器以弹出时间选择对话框。


MainActivity.java

package com.fzq.timepicker;

import com.fzq.timepicker.R.id;

import android.R.integer;
import android.app.Activity;
import android.app.Dialog;
import android.app.TimePickerDialog;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TimePicker;

public class MainActivity extends Activity {
	private Button timePicker;
	private static final int  Time_Pick_ID=1;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		timePicker=(Button)findViewById(R.id.timePicker);
		timePicker.setOnClickListener(new timePickerListener());
	}
	class timePickerListener implements OnClickListener{

		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			showDialog(Time_Pick_ID);
			
		}
		
	}
	
	TimePickerDialog.OnTimeSetListener onTimeSetListener=new  TimePickerDialog.OnTimeSetListener(){

		@Override
		public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
			// TODO Auto-generated method stub
			System.out.print("时间:"+hourOfDay+" :"+minute);
			
		}
		
	};
	
	
	protected Dialog onCreateDialog(int Id){
		switch (Id) {
		case Time_Pick_ID:
			
			//false 是表示不以24小时方式显示时间
			return new TimePickerDialog(MainActivity.this, onTimeSetListener, 11,26, false);
			
		

		
		}
		return null;
		
	}
}

Main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="${relativePackage}.${activityClass}" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />
    <Button 
        android:id="@+id/timePicker"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/timePicker"/>

</LinearLayout>


string.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">01_timePicker</string>
    <string name="hello_world">Hello world! TimePicker</string>
    <string name="timePicker">开启timePicker</string>

</resources>



### AndroidTimePicker组件的使用方法 在Android开发中,`TimePicker` 是一种用于让用户选择时间(小时和分钟)的UI控件。以下是关于 `TimePicker` 的基本用法以及一些常见操作。 #### 基本导入与声明 为了使用 `TimePicker`,需要先引入必要的类并初始化该组件。通常情况下,在布局文件中定义 `TimePicker` 控件,并通过 Java 或 Kotlin 文件对其进行访问[^1]。 ```xml <TimePicker android:id="@+id/time_picker" android:layout_width="wrap_content" android:layout_height="wrap_content"/> ``` 随后可以在 Activity 中获取此控件: ```java TimePicker timePicker = findViewById(R.id.time_picker); ``` --- #### 设置监听器以捕获时间变化事件 如果希望当用户调整时间时触发某些逻辑处理,则可以通过实现 `OnTimeChangedListener` 接口完成这一功能[^2]。 ```java timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() { @Override public void onTimeChanged(TimePicker view, int hourOfDay, int minute) { // 处理时间改变后的业务逻辑 System.out.println("Selected Hour: " + hourOfDay + ", Minute: " + minute); } }); ``` 上述代码片段展示了如何捕捉到用户更改时间和分针的动作,并打印所选的时间值。 --- #### 使用对话框形式展示 TimePicker (推荐方式) 除了直接嵌入界面外,更常见的做法是以弹窗的形式呈现给用户交互。这可通过创建一个继承自 `DialogFragment` 的子类来轻松达成目标[^4]。 下面是一个简单的例子说明如何构建这样的对话框: ```java public static class TimePickerFragment extends DialogFragment { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { Calendar c = Calendar.getInstance(); int hour = c.get(Calendar.HOUR_OF_DAY); int minute = c.get(Calendar.MINUTE); return new TimePickerDialog(getActivity(), (TimePickerDialog.OnTimeSetListener) getActivity(), hour, minute, true); // “true” 表示采用24小时制显示模式 } } ``` 调用这个对话框非常简单,只需执行如下命令即可将其展现出来: ```java TimePickerFragment fragment = new TimePickerFragment(); fragment.show(getSupportFragmentManager(), "timePicker"); ``` --- #### 自定义样式与主题应用 有时开发者可能想要修改默认外观风格使之更加匹配应用程序的整体设计语言。比如更改字体颜色或者背景等等都可以借助属性配置达到目的[^3]。 假设我们想把文字改成红色的话可以这样做: ```java int colorPrimaryDark = ContextCompat.getColor(context,R.color.red); ((ViewGroup) timePicker.getChildAt(0)).getChildAt(1).setBackgroundColor(colorPrimaryDark); ``` 注意这里只是示范了一种可能性实际项目里建议封装成工具函数方便重复利用减少冗余代码量. --- ### 总结 综上所述,无论是作为独立部件还是集成至其他复杂结构之中,掌握好这些基础知识点对于高效开发高质量移动应用至关重要[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值