一个日期选择对话框
16lz
2021-01-23
<?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()); } } }}
更多相关文章
- android 遍历所有控件
- Android 多线程1
- Android学习--动态向SPinner控件中添加数据
- Android在代码中设置控件的drawableLeft,drawableRight,drawableTo
- 编程回忆之Android回忆(个性化控件(View)篇)
- Android 控件布局实现卡片效果,阴影效果