Android 位于EditText布局顶部的AlertDialog,不显示键盘

Android 位于EditText布局顶部的AlertDialog,不显示键盘,android,Android,我有一个包含EditText输入字段的布局,在这个布局的顶部我弹出一个AlertDialog(广告)。问题是,当点击编辑文本时,软键盘不会弹出。是否有任何解决办法来达到这一要求 布局: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.a

我有一个包含EditText输入字段的布局,在这个布局的顶部我弹出一个AlertDialog(广告)。问题是,当点击编辑文本时,软键盘不会弹出。是否有任何解决办法来达到这一要求

布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_secondary"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="inova.lk.com.librarytestapp.main.SecondaryActivity">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="20dp"
        android:layout_margin="20dp"
        android:hint="Enter Name"
        android:focusableInTouchMode="true"
        android:layout_centerInParent="true"/>
</RelativeLayout>
更新*****


我正在开发一个像GoogleADZ这样的广告SDK。AlertDialog是我的adz横幅。edittext版面顶部的横幅是一种场景。因此,我想要一个解决方案,它不需要使用我的SDK的用户进行任何更改。

将这些行放在dialog.show()之前

我正在弹出一个AlertDialog(广告)


为什么必须使用AlertDialog?由于您的广告始终放在版面顶部,您可能不需要AlertDialog,只需使用框架版面并将其放在版面顶部上方即可。

从xml“android:focusableInTouchMode=“true”中删除这一行可能重复的:@rafsanahmad007请阅读问题。这里我要说的是另一种情况。您指出的那个问题是关于当EditText包含在AlertDialog内部时会发生什么。@RajshreeTiwari我试过了,但仍然不起作用。Thanks@MilanJayawardane不是重复的Downvoter…只是一个检查的建议…我正在开发一个SDK,有adz类型(比如google adz)。例如,顶部横幅、底部横幅、全屏横幅等。如果我提供自定义视图,那么开发人员可以将该视图放置在布局中的任何位置。因此,我将无法强制开发人员放置顶部横幅、底部横幅等。如果EditText包含在AlertDialog中,这将起作用。谢谢,我正在开发一个像GoogleADZ这样的广告SDK。AlertDialog是我的adz横幅。edittext版面顶部的横幅是一种场景。因此,我想要一个解决方案,它不需要用户自己做任何更改。谢谢你想在屏幕上加载提醒对话框广告时显示键盘吗?实际上这只是一个场景。如果开发人员使用my SDK在其页面中显示包含EditText输入字段的顶部横幅,则在关闭横幅之前,他无法与这些输入字段交互(软键盘不会弹出)。但是onclick,类似滚动的函数可以正常工作,这和这个问题类似
final Dialog dialog = new Dialog(activity);

dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
   dialog.setContentView(inova.lk.com.inapplibrary.R.layout.custom_dialog_layout);
dialog.setCancelable(false);

Window window = dialog.getWindow();
window.setFlags(
        WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
        WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
);

window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));

WindowManager.LayoutParams wmlp = dialog.getWindow().getAttributes();
wmlp.width = Utility.dpToPx(320);
wmlp.height = Utility.dpToPx(50);

dialog.show();
try{ 
      dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
   }catch (Exception e){
      e.printStackTrace();
      }