本例子和上一篇datePicker相似。通过一个按钮点击,弹出一个TimePickerDialog。用户调整好新时间,确定后,会以字符串形式把新时间设置到Button上。
主要知识点是 new TimePickerDialog().
new TimePickerDialog(this, new OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
btnChangeTime.setText(String.format("%s:%s",
timeFormat(hourOfDay), timeFormat(minute)));
}
}, 10, 53, true).show();
函数解释:
android.app.TimePickerDialog.TimePickerDialog(Context context,OnTimeSetListener callBack, int hourOfDay, int minute, boolean is24HourView)
Parameters:
- context Parent. 上下文
- callBack How parent is notified. 调整好新时间后的回调函数
- hourOfDay The initial hour. 初始小时
- minute The initial minute. 初始分钟
- is24HourView Whether this is a 24 hour view, or AM/PM. 是否是24小时制时间
-
- 布局文件:timepicker_layout.xml
-
-
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:id="@+id/btn_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="16dp"
android:onClick="changeTime"
android:text="00:00" />
</LinearLayout>
-
-
-
AtyTimePicker.java文件:
-
package com.fxj.composit;
import com.fxj.compractice.R;
import android.app.Activity;
import android.app.TimePickerDialog;
import android.app.TimePickerDialog.OnTimeSetListener;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TimePicker;
public class AtyTimePicker extends Activity {
private Button btnChangeTime;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.timepicker_layout);
btnChangeTime = (Button) findViewById(R.id.btn_time);
}
// 按钮监听事件
public void changeTime(View view) {
new TimePickerDialog(this, new OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
btnChangeTime.setText(String.format("%s:%s",
timeFormat(hourOfDay), timeFormat(minute)));
}
}, 10, 53, true).show();
}
public String timeFormat(int value) {
return value >= 10 ? value + "" : "0" + value;
}
}
- 运行效果:
-
-
-
-
-
-
- 结束。
-
-
-
-