2017-02-26 6 views
6

मैं बस टेक्स्ट इनपुटपुटआउट के अंदर एक संपादन टेक्स्ट पर एक ऑनलिक सुनने की कोशिश कर रहा हूं। यह काम करता है लेकिन मुझे ट्रिगर करने के लिए संपादन टेक्स्ट को दो बार क्लिक करने की आवश्यकता है, मुझे समझ में नहीं आता कि क्यों।TextInputLayout onclick के अंदर EditText के लिए 2 क्लिक की आवश्यकता है? एंड्रॉइड

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 एक्सएमएल कोड।


स्पष्टीकरण, डॉक्स से के रूप में, android:focusableInTouchMode है:

बूलियन को नियंत्रित करता है कि क्या एक दृश्य है, जबकि संपर्क में मोड फोकस ले सकते हैं। यदि यह किसी दृश्य के लिए सही है, तो पर क्लिक करने पर यह दृश्य फोकस प्राप्त कर सकता है, और यदि पर कोई अन्य दृश्य क्लिक किया गया है तो यह विशेषता सत्य पर सेट नहीं हो सकती है।

और EditText डिफ़ॉल्ट रूप से सच है।

+0

धन्यवाद! यह काम किया! –

+1

@ रेमी आपका स्वागत है, कृपया इसे अन्य लोगों के उत्तर के रूप में स्वीकार करने पर विचार करें जो आपके प्रश्न के माध्यम से आ सकते हैं। –

+0

यदि आप इनपुट पर लंबे समय तक क्लिक करते हैं, तो आप अपना अंतिम प्रतिलिपि टेक्स्ट पेस्ट करने में सक्षम होंगे, इसलिए यह एक पूर्ण समाधान नहीं है। –

संबंधित मुद्दे