一个日期选择对话框

<?xml version="1.0" encoding="utf-8"?>

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<TableRow
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:layout_gravity="center">
<CalendarView
android:layout_width="180dp"
android:layout_height="180dp"
android:id="@+id/dialog_calendarView" android:layout_column="0"/>
</TableRow>
<TableRow
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button
android:layout_width="90dp"
android:layout_height="match_parent"
android:text="OK"
android:id="@+id/dialog_ok"/>
</TableRow>
</TableLayout>



package com.pandy.db.activity;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Handler;
import android.os.Message;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.CalendarView;
import android.widget.EditText;
import com.pandy.db.R;
import com.pandy.db.utils.ToastUtils;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

/**
* Created with IntelliJ IDEA.
* User: pandy
* Date: 13-6-27
* Time: 下午3:33
* To change this template use File | Settings | File Templates.
* 传入要现实值的输入框,然后用线程去设定这个值.
*/
public class CalendarViewDialog {
private Activity activity;
private EditText in_date;
private Date date;

public CalendarViewDialog(Activity activity, EditText in_date) {
this.activity = activity;
this.in_date = in_date;
}

public void show() {
//初始化界面
LayoutInflater factory = LayoutInflater.from(activity);
View view = factory.inflate(R.layout._calendar_dialog, null);
//创建对话框
final AlertDialog dialog = new AlertDialog.Builder(activity)
.setView(view)
.create();
//日历事件
CalendarView dialog_calendarView = (CalendarView)view.findViewById(R.id.dialog_calendarView);
dialog_calendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
@Override
public void onSelectedDayChange(CalendarView calendarView, int i, int i2, int i3) {
date = new java.sql.Date(calendarView.getDate());
//启动线程去重画EditText控件
final CalendarDialogHandler handler = new CalendarDialogHandler();
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
Message message = new Message();
message.what=0;
handler.sendMessage(message);
}
});
thread.start();

}
});

Button dialog_ok = (Button)view.findViewById(R.id.dialog_ok);
dialog_ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
dialog.dismiss();
}
});


dialog.show();
}

//重画EditText控件的Handler
class CalendarDialogHandler extends Handler {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if(0==msg.what){
in_date.setText(date.toString());
}
}
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值