我有一个扩展对话框类的自定义对话框。启动时的Android自定义对话框类显示软键
我必须使其关注其edittext中的一个,并显示对话框启动时的软键。
我已经看了几个使用inputmanager的答案,但没有那么多运气。
调用对话框的活动被设置为默认隐藏软键,该软键在清单中设置。
在这种情况下,我能做些什么呢?
我有一个扩展对话框类的自定义对话框。启动时的Android自定义对话框类显示软键
我必须使其关注其edittext中的一个,并显示对话框启动时的软键。
我已经看了几个使用inputmanager的答案,但没有那么多运气。
调用对话框的活动被设置为默认隐藏软键,该软键在清单中设置。
在这种情况下,我能做些什么呢?
我会建议你在start_of_the_dialog你应该关闭键盘通过折叠#SOF答案。如果它不起作用,只需在处理程序的帮助下添加100毫秒的延迟即可在对话开始时关闭键盘。
一个假设第一:
通过这一说法:
它调用的对话框设置为默认隐藏,这是在清单中设置的自定义功能键的活动。
这是否意味着它具有这样的windowSoftInputMode
属性?
<activity
android:name=".MainActivity"
...
android:windowSoftInputMode="stateHidden">
...
</activity>
一种方法是在对话框的创作设置OnShowListener
。
在您类是-扩展,对话框类,你可以创建一个OnStateListener
,并宣布它的构造是这样的:
public class MyDialog extends Dialog {
public MyDialog(final Context context) {
super(context);
setContentView(R.layout.dialog_mydialog);
setOnShowListener(new OnShowListener() {
@Override
public void onShow(DialogInterface dialogInterface) {
displayKeyboard(context);
}
});
}
private void displayKeyboard(Context context) {
View view = findViewById(R.id.et_dialog_field);
InputMethodManager inputMethodManager =
(InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.toggleSoftInputFromWindow(
view.getApplicationWindowToken(),
InputMethodManager.SHOW_FORCED, 0);
}
}
上的活动我假设你有类似:
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View view) {
MyDialog dialog = new MyDialog(MainActivity.this);
dialog.show();
}
});
外核层警告的是,如果有人要求设置OnShowListener
它将覆盖你的。
我得到了show-soft-input来自this answer的一段代码。
ediText.postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
InputMethodManager inputMethodManager = (InputMethodManager)
getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
},100);
将文本编辑为焦点,但您想隐藏键盘? – surya
在活动中,它不能显示软键。 – March3April4