2017-02-26 48 views
6

我只是想讓onlick聽一下TextInputLayout中的編輯文本。它的工作原理,但我需要點擊兩次EditText它觸發我不明白爲什麼。這裏是我的代碼:EditText裏面TextInputLayout onclick需要2點擊?! Android

XML:

<android.support.design.widget.TextInputLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="10dp"> 

     <EditText 
      android:id="@+id/start_date" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:ems="10" 
      android:hint="Starting Date*: " 
      android:inputType="textPersonName" /> 
    </android.support.design.widget.TextInputLayout> 

Listenner:

private void setListenners() { 
     EditText startDate = (EditText) mView.findViewById(R.id.start_date); 
     startDate.setOnClickListener(new View.OnClickListener() { 
      @RequiresApi(api = Build.VERSION_CODES.N) 
      @Override 
      public void onClick(View v) { 
       Calendar mcurrentDate=Calendar.getInstance(); 
       int mYear = mcurrentDate.get(Calendar.YEAR); 
       int mMonth = mcurrentDate.get(Calendar.MONTH); 
       int mDay = mcurrentDate.get(Calendar.DAY_OF_MONTH); 

       DatePickerDialog mDatePicker=new DatePickerDialog(getActivity(), new DatePickerDialog.OnDateSetListener() { 
        @Override 
        public void onDateSet(DatePicker datePicker, int year, int month, int day) { 
         Log.d("DEBUG", "year: " + year + " month: " + month + " day: " + day); 
        } 
       },mYear, mMonth, mDay); 
       mDatePicker.show(); 
      } 
     }); 
    } 

回答

13

設置屬性android:focusableInTouchMode,像這樣:

android:focusableInTouchMode="false" 

edittext xml代碼。


說明,如從文檔,android:focusableInTouchMode是:控制一個視圖是否可以採取焦點,而在觸摸 模式

布爾值。如果對於某個視圖來說這是真的,那麼當點擊 時,該視圖可以獲得焦點,並且如果點擊了另一個視圖,則可以保持焦點 沒有將該屬性設置爲真。

EditTexttrue默認情況下。

+0

謝謝!這工作! –

+1

@Rémi歡迎您,請考慮接受它作爲回答其他人誰可能會通過你的問題。 –

+0

如果您長時間點擊輸入,您將能夠粘貼上次複製的文本,因此這不是完整的解決方案。 –