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判断触发的按钮从而定义对应的执行代码。