0

私はTextInputLayoutの中にEdittextを持っています。私はこのtextinputlayoutをクリックすると、カレンダーもopen.butですが、私の場合、フローティングラベルは状態を変更し、edittextをクリックすると、カレンダーはopening.butです。私はそれをしたくありません。 TextInputLayoutで初めてユーザーがクリックしたときにフローティングラベルが変更され、カレンダーもit.canで開いていれば誰でもこのようにすることができますか?フローティングラベルがTextInputLayoutの状態を変更するときのアクションの実行方法?

これは私のxmlです: -

<android.support.design.widget.TextInputLayout 
        android:id="@+id/til_dob" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:layout_margin="@dimen/_10sdp" 
        android:clickable="true" 
        android:textColorHint="@color/colorBlack"> 

        <EditText 
         android:id="@+id/DateOfBirth" 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" 
         android:hint="@string/date" 
         android:inputType="none" 
         android:maxLines="1" 
         android:singleLine="true" 
         android:textSize="15sp" /> 
       </android.support.design.widget.TextInputLayout> 

そしてこれはのEditTextのクリックのリスナーに私のです: -

@Override 
    public void onClick(View view) { 
     switch (view.getId()) { 

      case R.id.DateOfBirth: 

       new DatePickerDialog(getContext(), date, myCalendar 
         .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH), 
         myCalendar.get(Calendar.DAY_OF_MONTH)).show(); 

       break; 

     } 
    } 

答えて

0

TextInputLayoutがためにクリックされたとき、あなたが反応するOnFocusChangeListenerを使用する必要があります初めて(TextInputLayout内のEditTextがフォーカスを取得することを意味します)

editText.setOnFocusChangeListener(new View.OnFocusChangeListener() { 
    @Override public void onFocusChange(View v, boolean hasFocus) { 
    //Open the calendar 
    new DatePickerDialog(getContext(), date, myCalendar 
        .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH), 
        myCalendar.get(Calendar.DAY_OF_MONTH)).show(); 
    } 
}); 

T彼は "ラムダ版"は:

editText.setOnFocusChangeListener((v, hasFocus) -> 
    new DatePickerDialog(getContext(), date, myCalendar 
        .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH), 
        myCalendar.get(Calendar.DAY_OF_MONTH)).show()); 
+0

あなたはそうです。前の断片に行くと、edittextのフォーカスが再び変更されます。カレンダーのポップアップが再び表示されます。どのように私はこれを解決することができます。 – LoveAndroid

関連する問題