2

在我的应用程序中,我有一个带有 EditText 的对话框。我以这样的方式对其进行编码,一旦对话框出现,软键盘就会出现,编辑文本将获得焦点,editText中的所有现有文本都被预先选择。并且用户可以开始输入。当我将手机纵向放置时,这一切都很好。但是当我有横向的手机时,同样的事情不起作用。我的片段中的部分代码粘贴在下面。

final EditText inputDeviceId = new EditText(getActivity());
inputDeviceId.setInputType(InputType.TYPE_CLASS_TEXT);
String savedDevId = getDeviceID();
inputDeviceId.setText(savedDevId);
inputDeviceId.setSelectAllOnFocus(true);

// some more code ... to create dialog , ok cancel buttons then,
final AlertDialog alertDialog = alertDialogBuilder.create();
inputDeviceId.setOnFocusChangeListener(new View.OnFocusChangeListener() {       
    if(hasFocus){   
        alertDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
                }
});

alertDialog.show();

现在这一切都适用于纵向,不适用于横向。在横向模式下,显示带有 edittext 的对话框,它具有焦点并且预先选择了现有文本,但它不显示键盘。用户必须单击editText 才能出现键盘。为什么?我正在使用nexus-5进行测试。

4

0 回答 0