读书人

一个日期抉择对话框

发布时间: 2013-07-08 14:13:00 作者: rapoo

一个日期选择对话框

<?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());            }        }    }}

读书人网 >操作系统

热点推荐