Android对话框(二)
DatePickerDialog日期选择对话框,用于日期的设置。下面举一个简单的单击Button按钮调用日期选择对话框的实例。
并给出两种触发按钮单击事件的方法。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_title"
/>
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world"
tools:context=".MainActivity" />
</LinearLayout>
下面是实现代码:
package com.example.datepickerdialog;
import java.util.Calendar;
import android.os.Bundle;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.app.Dialog;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TextView;
public class MainActivity extends Activity {
final int DIALOG_DATEPICKER=1;
Calendar c;
Button btn;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/*获取当前日期*、
*
*/
c=Calendar.getInstance();
btn=(Button)findViewById(R.id.button);
OnClickListener lsn=new OnClickListener(){
public void onClick(View v){
/*
* 当Button被单击后,改变Button上面的背景文字
* 并且打开DatePickerDialog对话框
*/
Button bton=(Button)v;
bton.setText("我被单击了!");
showDialog(DIALOG_DATEPICKER);
}
};
btn.setOnClickListener(lsn);
}
protected Dialog onCreateDialog(int id){
switch(id){
case DIALOG_DATEPICKER:
OnDateSetListener lsn=new OnDateSetListener(){
public void onDateSet(DatePicker v,int y,int m,int d){
/*
* 设置好日期后的回调方法,
* 可以根据设置的内容更新用户界面,
* 或者系统时间
*/
TextView tv=(TextView)findViewById(R.id.textview);
String str="目前日期为:";
str=str+y+"年/"+m+"月/"+d+"日";
tv.setText(str);
}
};
DatePickerDialog date_dialog=new DatePickerDialog(this,lsn,c.get(Calendar.YEAR),c.get(Calendar.MONTH),c.get(Calendar.DAY_OF_MONTH));
return date_dialog;
default:
return null;
}
}
}
下面简单介绍下处理Button按钮单击事件的第二种方式,第一种方式众所周知是,使用监听器。
第二种方式:
在XML的Button项中,添加属性:android:onClick="SelfDestruct"
然后在.java文件中 添加 public void SelfDestruct(View v){
//...
}方法。即可
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/self_destruct"
android:onClick="selfDestruct"/>