2016-11-07 12 views
0

Я хочу отключить ввод клавиатуры на TimePicker. У вас есть идея решить эту проблему? Потому что это просто раздражает.Отключить ввод клавиатуры на TimePicker

Заранее благодарен!

Кстати, я пробовал это очень популярное решение setDescendantFocusability(TimePicker.FOCUS_BLOCK_DESCENDANTS);, но он не работал на моем коде.

Это мой код;

MainActivity.java

public void selectTimeToDisplay(View view) { 
    DialogFragment dialogFragment = new DisplayTimeFragment(); 
    dialogFragment.show(getSupportFragmentManager(), "DatePicker"); 
} 

public class DisplayTimeFragment extends DialogFragment implements TimePickerDialog.OnTimeSetListener { 
    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 

     final Calendar c= Calendar.getInstance(); 
     int hour = c.get(Calendar.HOUR_OF_DAY); 
     int minute = c.get(Calendar.MINUTE); 
     return new TimePickerDialog(getActivity(), this, hour, minute, 
       DateFormat.is24HourFormat(getActivity())); 

    } 
    @Override 
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 
     view.setDescendantFocusability(TimePicker.FOCUS_BLOCK_DESCENDANTS);//doesnt work 
     setSelectedTime(hourOfDay,minute); 

    } 
    public void setSelectedTime(int hourOfDay,int minute) { 


     saat1.setText(hourOfDay+":"+minute);} 

activity_main.xml

<EditText 
    android:layout_width="70dp" 
    android:layout_height="wrap_content" 
    android:inputType="time" 
    android:ems="10" 
    android:id="@+id/bolme1saat" 
    android:layout_gravity="center_horizontal" 
    android:onClick="selectTimeToDisplay" 
    android:layout_above="@+id/textView4" 
    android:layout_alignStart="@+id/bolme2saat"/> 

ответ

0

Если вы не будете использовать клавиатуру в пределах этого класса, вы можете просто отключить клавиатуру

<activity android:name=".MainActivity" 
      android:windowSoftInputMode="stateHidden" /> 

Альтернативой может вынуждать андроида, чтобы скрыть клавиатуру

// This works 100% 

    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
    imm.hideSoftInputFromWindow(view.getWindowToken(), 0); 
+0

Я пробовал это раньше. Взволнованно появляется клавиатура. –

+0

Попробуйте форсировать андроид, чтобы скрыть клавиатуру programaticcaly –

+0

Я обновил свой код с помощью альтернатив –

0

Вы можете попробовать Android: фокусируемый = «ложный» и Android: кликабельным = «истина» в XML.

+0

Я не могу использовать focusable = false, потому что есть метод onFocusChangeListener для этого edittext –

+0

Вы пытались установить стиль и указать тему этого макета? Это сработало для меня, когда я хотел временно прекратить высказываться. –

 Смежные вопросы

  • Нет связанных вопросов^_^