Редактировать текст не может получить ввод с клавиатуры в диалоговом окне для Android выше - PullRequest
0 голосов
/ 16 мая 2019

Я настраиваю диалог, чтобы получить пин-код от пользователя.В то время как диалог с клавиатурой появляется, но текст редактирования не получает ввода с клавиатурыТо же диалоговое окно работает на Android 6. Ниже приведен код

Код для диалога

    LayoutInflater layoutInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View promptsView = layoutInflater.inflate(R.layout.activity_password,
            null);
    Dialog dialog = new Dialog(getApplicationContext()
            , android.R.style.Theme_Black_NoTitleBar_Fullscreen);
    dialog.setCanceledOnTouchOutside(false);
    dialog.setCancelable(false);
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY);
    }
    else {
        dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_PHONE);
    }
    dialog.getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT,
            WindowManager.LayoutParams.MATCH_PARENT);
    dialog.setContentView(promptsView);
    dialog.getWindow().setGravity(Gravity.CENTER);
    dialog.show();

Код макета XML:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/colorAccent">
    <TextView
        android:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="32dp"
        android:text="Enter Your Pin"
        android:textSize="16sp"
        android:gravity="center"
        android:textColor="#fff"
        android:layout_marginTop="@dimen/activity_vertical_margin"
        />
    <EditText
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
        android:layout_centerInParent="true"
        android:hint="Enter Pin"
        android:id="@+id/enter_pin"
        android:inputType="numberPassword"
        android:textAlignment="center"

        />
    <Button
        android:id="@+id/confirm"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/enter_pin"
        android:text="Confirm"
        android:layout_marginTop="8dp"
        android:layout_marginBottom="8dp"
        android:layout_marginLeft="32dp"
        android:layout_marginRight="32dp"
        android:textSize="12dp"
        android:textColor="#fff"
        android:background="@android:color/transparent"
        />
</RelativeLayout>

1 Ответ

0 голосов
/ 21 мая 2019

Пожалуйста, попробуйте следующий код для в Java-файле для диалога:

                Dialog dialog = new Dialog(MainActivity.this);
                dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
                dialog.setContentView(R.layout.activity_password);
                dialog.setCanceledOnTouchOutside(true);
                dialog.getWindow().setLayout(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
                Window window = dialog.getWindow();
                window.setGravity(Gravity.CENTER);
                dialog.show();

Этот код работал в выше Android N, а также в ниже Android N.

Я надеюсь, что его работа длявы.

...