Android 日期控制項的簡單實現

來源:互聯網
上載者:User

main.xml

<?xml version="1.0" encoding="utf-8"?>    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"        android:orientation="vertical" android:layout_width="fill_parent"        android:layout_height="fill_parent">        <TextView android:layout_width="fill_parent"           android:layout_height="wrap_content" android:text="日期控制項的使用DEMO" />        <LinearLayout android:orientation="horizontal"           android:layout_width="fill_parent" android:layout_height="wrap_content">           <EditText android:id="@+id/showDate" android:layout_width="200dip"               android:layout_height="wrap_content" />           <Button android:id="@+id/but_showDate" android:layout_width="100dip"               android:layout_height="wrap_content" android:text="選擇日期" />        </LinearLayout>         </LinearLayout>  

  

MainActivity.java原始碼:

 

package com.wanghf.demo;         import java.util.Calendar;         import android.app.Activity;    import android.app.DatePickerDialog;    import android.app.Dialog;    import android.os.Bundle;    import android.os.Handler;    import android.os.Message;    import android.view.View;    import android.widget.Button;    import android.widget.DatePicker;    import android.widget.EditText;         /**   * 日期控制項的簡單使用   *   * @author adminelco   * @time 2011-07-20 15:42:24   *   */    public class MainActivity extends Activity {        private EditText showDate = null;        private Button pickDate = null;        private static final int DATE_DIALOG_ID = 1;        private static final int SHOW_DATAPICK = 0;        private int mYear;        private int mMonth;        private int mDay;             /** Called when the activity is first created. */        @Override        public void onCreate(Bundle savedInstanceState) {           super.onCreate(savedInstanceState);           setContentView(R.layout.main);           showDate = (EditText) findViewById(R.id.showDate);           pickDate = (Button) findViewById(R.id.but_showDate);           pickDate.setOnClickListener(new DateButtonOnClickListener());           final Calendar c = Calendar.getInstance();           mYear = c.get(Calendar.YEAR);           mMonth = c.get(Calendar.MONTH);           mDay = c.get(Calendar.DAY_OF_MONTH);           setDateTime();        }             private void setDateTime() {           final Calendar c = Calendar.getInstance();           mYear = c.get(Calendar.YEAR);           mMonth = c.get(Calendar.MONTH);           mDay = c.get(Calendar.DAY_OF_MONTH);                updateDisplay();        }             /**       * 更新日期       */        private void updateDisplay() {           showDate.setText(new StringBuilder().append(mYear).append(                  (mMonth + 1) < 10 ? "0" + (mMonth + 1) : (mMonth + 1)).append(                  (mDay < 10) ? "0" + mDay : mDay));        }             /**       * 日期控制項的事件       */        private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {           public void onDateSet(DatePicker view, int year, int monthOfYear,                  int dayOfMonth) {               mYear = year;               mMonth = monthOfYear;               mDay = dayOfMonth;               updateDisplay();           }        };             /**       * 選擇日期Button的事件處理       *       * @author Raul       *       */        class DateButtonOnClickListener implements               android.view.View.OnClickListener {           @Override           public void onClick(View v) {               Message msg = new Message();               if (pickDate.equals((Button) v)) {                  msg.what = MainActivity.SHOW_DATAPICK;               }               MainActivity.this.saleHandler.sendMessage(msg);           }        }             @Override        protected Dialog onCreateDialog(int id) {           switch (id) {           case DATE_DIALOG_ID:               return new DatePickerDialog(this, mDateSetListener, mYear, mMonth,                      mDay);           }           return null;        }             @Override        protected void onPrepareDialog(int id, Dialog dialog) {           switch (id) {           case DATE_DIALOG_ID:               ((DatePickerDialog) dialog).updateDate(mYear, mMonth, mDay);               break;           }        }             /**       * 處理日期控制項的Handler       */        Handler saleHandler = new Handler() {           @Override           public void handleMessage(Message msg) {               switch (msg.what) {               case MainActivity.SHOW_DATAPICK:                  showDialog(DATE_DIALOG_ID);                  break;               }           }        };    } 

出處:http://blog.csdn.net/android_home/article/details/6620206

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.