2015-11-04 96 views
2

我正在使用按鈕來顯示日曆。選擇日期之後,這個日期將顯示在edittext控件上。所以我在編輯文本onclick method上顯示日曆。它顯示日曆當我點擊兩次。如果我點擊單一時間。它允許我編輯。如何獲得單擊日曆?在edittext上設置日曆時出現錯誤onclick

我的代碼是...所有你需要的的EditText禁用編輯,然後使其如下啓用

  billdate.setOnClickListener(new View.OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 
        InputMethodManager im = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
        im.hideSoftInputFromWindow(billdate.getWindowToken(), 0); 
        showDialog(DATE_DIALOG_ID); 
       } 
      }); 
+1

更好的使用** TextView **。 – activesince93

+0

@ activesince93該屏幕的要求是Edittext。因此我無法更改要求。 – Prasanna

+0

但是如果你不能輸入任何單詞或任何東西,你應該使用'TextView'。並像'EditText'一樣設置背景。 – activesince93

回答

1

@ activesince93謝謝你的想法。 我找到了解決方案,將EditText控件更改爲TextView,並將其設置爲EditText.Now,這樣它的工作就很好。我附加了我所做的。

<TextView 
style="@android:style/Widget.EditText" 
android:id="@+id/TextView01" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
</TextView> 
+0

任何人都請把它作爲答案,因爲我無法做到這一點。 – Prasanna

0

第一:

設置你的EditTextandroid:enabled="true"android:focusable="false"

然後實現您的OnClickListener

但它會更好,在這種情況下使用TextView

2

首先讓你EDITTEXT不可編輯下面XML屬性

android:editable="false" 

因爲你沒有提到你的代碼,所以我無法找到你得到它的錯誤,但我更喜歡你試試下面的代碼用於獲取日曆當你選擇你的日期時它會在你的editText中設置。

private Calendar calendar = Calendar.getInstance(); 
public static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("EEE, MMM dd yyyy", Locale.getDefault()); 

billdate.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       InputMethodManager im = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
       im.hideSoftInputFromWindow(billdate.getWindowToken(), 0); 

      new DatePickerDialog(getActivity(), new DatePickerDialog.OnDateSetListener() { 
       @Override 
       public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { 
        calendar.set(Calendar.YEAR, year); 
        calendar.set(Calendar.MONTH, monthOfYear); 
        calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth); 
        updateDateUI(calendar, "date"); 
       } 
       }, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH)).show(); } 
       }); 
     } 

     protected void updateDateUI(Calendar calendar, String strTimeDate) { 
     mEditText.setText(TIME_FORMAT.format(calendar.getTime())); 
     } 
+0

感謝您的代碼buddy.I通過將控件更改爲TextView來找到解決方案。 – Prasanna

+0

隨時歡迎..快樂編碼..! –

相關問題