2014-08-03 22:57:11|?次阅读|上传:huigezrx【已有?条评论】发表评论
关键词:Java, Android, 界面设计, 移动应用|来源:唯设编程网
其中TimePickerDialog.OnTimeSetListener为时间选中对应的监听器,其他为时间弹出窗口初始化的时间,对于一个OnTimeSetListener接口而言,需要实现其中的onTimeSet()方法,在这个方法内,可以得到用户选中的时间。
下面是一个实际示例,在主面板(Activity)中,包含两个时间展示控件,一个是AnalogClock,另一个是DigitalClock,还包含一个日期选择按钮和时间选择按钮,当用户点击日期选择按钮时,弹出一个日期选择对话框让用户选择时间,并且用户点击Done的时候在主面板通过Toast的makeText函数显示对应的日期,用户点击时间选择按钮,弹出一个时间选择对话框,用户点击Done的时候在主面板通过Toast的makeText函数显示对应的时间。
主面板的布局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" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="指针时钟:" />
<AnalogClock
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="数字时钟:" />
<DigitalClock
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="20dp" />
<Button
android:id="@+id/btnTimePickerDialog"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="选择时间"
/>
<Button
android:id="@+id/btnDatePickerDialog"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="选择日期"
/>
</LinearLayout>
对应的实现效果:

下面是Activity类对应的实现代码:
package com.example.myapplication2.app;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.app.TimePickerDialog;
import android.app.TimePickerDialog.OnTimeSetListener;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TimePicker;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener {
private Button btnDate, btnTime;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_dialog);
btnDate = (Button) findViewById(R.id.btnDatePickerDialog);
btnTime = (Button) findViewById(R.id.btnTimePickerDialog);
btnDate.setOnClickListener(this);
btnTime.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnDatePickerDialog:
DatePickerDialog datePicker = new DatePickerDialog(MainActivity.this, new OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, year + "year " + (monthOfYear + 1) + "month " + dayOfMonth + "day", Toast.LENGTH_SHORT).show();
}
}, 2013, 7, 20);
datePicker.show();
break;
case R.id.btnTimePickerDialog:
TimePickerDialog time = new TimePickerDialog(MainActivity.this, new OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, hourOfDay + "hour " + minute + "minute", Toast.LENGTH_SHORT).show();
}
}, 18, 25, true);
time.show();
break;
}
}
}
这个Activity的实现代码比较简单,都在onCreate函数中完成,这个Activity实现了OnClickListener接口,所以可以将其中的按钮对应的监听器直接设置为这个Activity,在onClick函数中通过getID判断触发的按钮从而定义对应的执行代码。