有时候,我用到的日期控件的时候,要用对话的形式体现出来的,下面开始吧:
1.创建一个android-time
2.包名:com.app
3.主activity的名字:MainActivity
4.布局文件:main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/tv" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> </LinearLayout>
5.activity的代码
package com.app;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Locale;
import com.app.R;
import com.app.view.DatePickText;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.TimePickerDialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TextView;
import android.widget.TimePicker;
public class MainActivity extends Activity {
public static final int DATE = 0;
public static final int TIME = 1;
private final Calendar cal = Calendar
.getInstance(Locale.SIMPLIFIED_CHINESE);
private SimpleDateFormat df;
private TextView edit ;
private Button button1 ;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
df = new SimpleDateFormat();
this.edit = (TextView) this.findViewById(R.id.tv) ;
this.button1 = (Button) this.findViewById(R.id.button1) ;
this.button1.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
buildDateOrTimeDialog(MainActivity.this) ;
}
}) ;
}
private void buildDateOrTimeDialog(Context context) {
df = new SimpleDateFormat("HH:mm:SS");
switch (444) {
case DATE:
date: new DatePickerDialog(context, listener,
cal.get(Calendar.YEAR),
cal.get(Calendar.MONTH),
cal.get(Calendar.DAY_OF_MONTH)
).show();
break;
case TIME:
System.out.println("----------time---------------");
new TimePickerDialog(context, timeListen,
cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE),
true).show();
break;
default:
new DatePickerDialog(context, listener, cal.get(Calendar.YEAR),
cal.get(Calendar.MONTH),
cal.get(Calendar.DAY_OF_MONTH)
).show();
}
}
private DatePickerDialog.OnDateSetListener listener = new DatePickerDialog.OnDateSetListener() { //
@Override
public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) {
cal.set(Calendar.YEAR, arg1);
cal.set(Calendar.MONTH, arg2);
cal.set(Calendar.DAY_OF_MONTH, arg3);
updateDate();
}
};
private void updateDate() {
edit.setText(df.format(cal.getTime()));
}
TimePickerDialog.OnTimeSetListener timeListen = new TimePickerDialog.OnTimeSetListener() {
// 同DatePickerDialog控件
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
cal.set(Calendar.HOUR_OF_DAY, hourOfDay);
cal.set(Calendar.MINUTE, minute);
cal.set(Calendar.SECOND, cal.get(Calendar.SECOND));
updateTimes();
}
};
// 更新页面TextView的方法
private void updateTimes() {
edit.setText(df.format(cal.getTime()));
}
}
说明的:
其中 SimpleDateFormat df = new SimpleDateFormat("HH:mm:SS"); //定义获取时间的样子
switch (444) {
case DATE:
date: new DatePickerDialog(context, listener,
cal.get(Calendar.YEAR),
cal.get(Calendar.MONTH),
cal.get(Calendar.DAY_OF_MONTH)
).show();
break;
case TIME:
System.out.println("----------time---------------");
new TimePickerDialog(context, timeListen,
cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE),
true).show();
break;
default:
new DatePickerDialog(context, listener, cal.get(Calendar.YEAR),
cal.get(Calendar.MONTH),
cal.get(Calendar.DAY_OF_MONTH)
).show();
}
定义的对话框中,我们要不要显示时间,你可以更改switch(DATA||TIME)来选择你要的样子。
如果你还是看不懂上面的代码,或者用起来有问题,那么你可以联系:qq 1019990976。
觉得是无图有真相的。