Android手機開發:EditText+DatePicker帶日期選取器的編輯框

來源:互聯網
上載者:User

1. 聲明EditText變數,並關聯到相應控制項上

private EditText sellStartTime;private EditText sellEndTime;
sellStartTime = (EditText)findViewById(R.id.editSellStartTime);sellEndTime = (EditText)findViewById(R.id.editSellEndTime);

2. 日期選取器函數

private DatePickerDialog.OnDateSetListener mDateSetListener =            new DatePickerDialog.OnDateSetListener() {public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {                    mYear = year;                    String mm;                    String dd;                    if(monthOfYear<=9)                    {                    mMonth = monthOfYear+1;                    mm="0"+mMonth;                    }                    else{                    mMonth = monthOfYear+1;                    mm=String.valueOf(mMonth);                    }                    if(dayOfMonth<=9)                    {                    mDay = dayOfMonth;                    dd="0"+mDay;                    }                    else{                    mDay = dayOfMonth;                    dd=String.valueOf(mDay);                    }                    mDay = dayOfMonth;                    if(timeFlag == 0) {                    sellStartTime.setText(String.valueOf(mYear)+"-"+mm+"-"+dd);                    }else {                    sellEndTime.setText(String.valueOf(mYear)+"-"+mm+"-"+dd);                    }                }            };       protected Dialog onCreateDialog(int id) {    switch (id) {        case 0:        return new DatePickerDialog(this,                    mDateSetListener,                    mYear, mMonth, mDay);        case 1:        return new DatePickerDialog(this,                    mDateSetListener,                    mYear, mMonth, mDay);        }    return null;    }        // 隱藏手機鍵盤    private void hideIM(View edt){        try {             InputMethodManager im = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);             IBinder  windowToken = edt.getWindowToken();             if(windowToken != null) {                 im.hideSoftInputFromWindow(windowToken, 0);             }         } catch (Exception e) {                    }     }

3. 註冊監聽器,當EditText獲得焦點時,或者被點擊時,開啟日期選取器

                sellStartTime.setOnClickListener(new OnClickListener(){                public void onClick(View v) {                timeFlag = 0;                showDialog(0);}        });sellEndTime.setOnClickListener(new OnClickListener() {public void onClick(View v) {timeFlag = 1;showDialog(1);}});sellStartTime.setOnFocusChangeListener(new OnFocusChangeListener() {public void onFocusChange(View v, boolean hasFocus) {if (hasFocus == true) {timeFlag = 0;hideIM(v);showDialog(0);  }}});sellEndTime.setOnFocusChangeListener(new OnFocusChangeListener() {public void onFocusChange(View v, boolean hasFocus) {if (hasFocus == true) {timeFlag = 1;hideIM(v);showDialog(1);  }}});

4. 在包含EditText的LinearLayout中,添加語句

android:focusable="true"  android:focusableInTouchMode="true"

這句話,是為了防止EditText自動擷取焦點,觸發日期選取器。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.