Android, как установить скрытую клавиатуру для редактирования текста - PullRequest
2 голосов
/ 29 октября 2011

В моем приложении у меня есть editText.Если я нажму на это, то откроется диалоговое окно выбора даты, а не клавиатура.Пикер даты его открытия, но вместе с клавиатурой также идет.

(по умолчанию клавиатура идет для editText, но я этого не хочу) Я хочу, чтобы клавиатура editText не была видна / должна быть скрыта

Как я могу это сделать?

Мне понравилось,

   private EditText editDate;
  editDate=(EditText)findViewById(R.id.editDate);

editDate.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(editDate.getWindowToken(), 0);

                 showDialog(DATE_DIALOG_ID);
            }
        });

не работает.Есть ли способ?

спасибо

Ответы [ 4 ]

5 голосов
/ 29 октября 2011

А как же

EditText et = (EditText)findViewById(R.id.et);
et.setInputType(InputType.TYPE_NULL);
2 голосов
/ 15 июля 2012

Эта штука работает.http://developer.android.com/reference/android/view/ViewGroup.html#attr_android:descendantFocusability

<DatePicker
            android:id="@+id/sheduleDatePicker1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:descendantFocusability="blocksDescendants" />
0 голосов
/ 29 октября 2011

В xml-файле ActivityLayout измените editDate на недоступное для редактирования.Например, я использовал это в своем XML:

<EditText android:id="@+id/date_EditText"
        android:editable="false"  <---- this is what you want
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:inputType="none" 
        android:layout_weight="2" 
        android:layout_margin="5dp" android:layout_gravity="center_vertical">

0 голосов
/ 29 октября 2011

попробуйте установить это

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

вам, возможно, придется снова сделать его видимым, когда ваш сборщик дат уйдет в отставку, чтобы ваш другой текст для редактирования получил клавиатуру.

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...