我有一个包含EditText输入字段的布局,在此布局之上我弹出一个AlertDialog(广告)。问题是单击EditText时没有弹出SoftKeyBoard。是否有任何工作来实现这一要求?
布局:
<?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>
AlertDialog:
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();
UPDATE *****
我正在开发像google adz这样的广告SDK。 AlertDialog是我的adz横幅。编辑文本布局顶部的横幅是一种情况。因此,我想要一个不需要使用我的SDK的用户进行任何更改的解决方案。
答案 0 :(得分:0)
将这些行放在dialog.show();
之前try{
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
}catch (Exception e){
e.printStackTrace();
}
答案 1 :(得分:0)
我弹出一个AlertDialog(广告)。
为什么你必须使用AlertDialog?由于您的广告始终位于布局的顶部,因此您可能不需要AlertDialog,而只需使用FrameLayout并将其放置在布局顶部之上。