2017-02-26 16 views
6

Sadece bir TextInputLayout içindeki bir Edit metninde bir onlick dinlemeye çalışıyorum. Çalışır ama tetiklemek için EditText'i iki kez tıklatmam gerek neden anlamadım.EditText 2 tıklama gerektirir?! 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:

özelliğini ayarlayın
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(); 
      } 
     }); 
    } 

cevap

13

android:focusableInTouchModeyanlış için böyle: İşte benim kod içinde

android:focusableInTouchMode="false" 

senin edittext xml kodu.


açıklanması, dokümanlara itibaren, android:focusableInTouchMode geçerli: bir görünüm irtibatta modundayken odağı alıp alamayacağını denetler

Boole. Bu bir görünüm için doğruysa, tıklandığında bu görünüm odaklanabilir ve 'da başka bir görünüm tıklandığında odağı koruyabilir, bu özellik true değerine ayarlanmamıştır.

ve EditText varsayılan olarak gerçek olduğunu.

+0

Teşekkür ederiz! Bu çalıştı! –

+1

@ Rémi'ye hoşgeldiniz, lütfen sorularınızı ileten diğer kişilerin cevabı olarak kabul etmeyi düşünün. –

+0

Girdiyi uzun tıklarsanız, son kopyalanan metninizi yapıştırabilirsiniz, bu yüzden bu tam bir çözüm değildir. –