Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Android > Установка курсора в EditText и отображение клавиат


Автор: wondertalik 7.11.2012, 21:46
Суть вопроса, есть активность из которой вызывается диалог. Диалог состоит из текстового поля для ввода и двух кнопок (ок и cancel). Диалог реализован с помощью AlertDialog. Что нужно указать, вызвать чтобы при отображении диалогового окна курсор становился в текстовое поле и сразу же появлялась клавиатура для ввода (программно)! Спасибо.

Автор: bears 9.2.2013, 23:42
Та же проблема - ответ не нашел. Здесь повидимому тоже нет.

Автор: brother79 12.2.2013, 10:01
Я делал но очень давно
Код

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:focusable="true"
                android:focusableInTouchMode="true"
                android:orientation="vertical" >

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:paddingLeft="4pt"
                    android:paddingTop="4pt"
                    android:text="@string/serum_phosphate"
                    android:textColor="#000"
                    android:textStyle="bold" />



Помню что это ключевой момент, но искать счас источник на stackowerflow некогда, надеюсь поможет.
Т.е. я у лэйоута фокусные параметры выставил, ну и потом можно попробовать какойнь-дь setFocus уже у вьюхи вызвать.

Автор: Felan 17.4.2013, 16:32
Спрятать показать клаву программно можно примерно так:

Код

    public static void showSoftKeyboardOnView(@NotNull final View view) {
        (new Handler()).postDelayed(new Runnable() {
            public void run() {
                Log.i(TAG, "Opening keyboard on view " + view);

                view.requestFocus();

                // Yes, I know what you are thinking about that. If you knew something better by any chance it would be magnificent to have your idea here in code.
                view.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN, 0, 0, 0));
                view.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_UP, 0, 0, 0));
            }
        }, 200);
    }

    public static void hideSoftKeyboardOnView(@NotNull View view) {
        Log.i(TAG, "Closing keyboard on view " + view);
        InputMethodManager imm = (InputMethodManager) view.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
    }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)