Открытие клавиатуры автоматически при запуске деятельности с диалогом - PullRequest
0 голосов
/ 09 октября 2018

Я создал ярлык, который по назначению запускает действие.
В упражнении onCreate Я показываю android.app.Dialog с настраиваемым представлением.
Я хочу открыть клавиатуру вместе с заданием / диалогом.
Макет диалога:

 <EditText
    android:id="@+id/reminderEditText"
    android:inputType="text"
    android:maxLength="60"
    android:maxLines="1"
    android:hint="@string/remind_to"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <requestFocus />
</EditText>

Объявление активности в манифесте:

    <activity
        android:name=".ReminderActivity"
        android:windowSoftInputMode="stateAlwaysVisible"
        android:label="@string/new_reminder"
        android:exported="true"
        android:theme="@android:style/Theme.Translucent.NoTitleBar"/>

Активность onCreate():

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View view = inflater.inflate(R.layout.dialog_reminder, null);
    EditText editText = view.findViewById(R.id.reminderEditText);
    editText.requestFocus();

    MaterialStyledDialog dialog = new MaterialStyledDialog.Builder(this)
            .setIcon(R.drawable.ic_post_it_2)
            .setCustomView(view, 20, 20, 20, 0)
            .setPositiveText(android.R.string.ok)
            .autoDismiss(true) // close dialog on callbakcs
            .setCancelable(false) // not cancellable on outside touch
            .show();
    dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
}

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

Я также попробовал предложенные решения в этом вопросе , но ни одно из них не сработало.

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

Попробуйте,

InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                if (inputMethodManager != null) {
                    inputMethodManager.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
                }
0 голосов
/ 09 октября 2018

пожалуйста, попробуйте это:

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
...