0

我有一个AlertDialog展示EditText。它已经有了焦点(如它周围的橙色边框所示),但是,我必须单击它才能显示软键盘。显示对话框时有什么方法可以看到键盘?

我的代码是:

    final EditText input = new EditText(
                        PatientRegistrationActivity.this);
                input.setLines(1);
                input.setInputType(InputType.TYPE_CLASS_NUMBER);
                AlertDialog.Builder alt_bld = new AlertDialog.Builder(
                        PatientRegistrationActivity.this);
                alt_bld.setTitle(String.valueOf("Enter Age"));
                alt_bld.setView(input);

                alt_bld.setPositiveButton("ok",
                        new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog,
                                    int which) {
                                if (input.getText().toString() != "") {
                                    Calendar c = Calendar.getInstance();
                                    int yy = c.get(Calendar.YEAR)
                                            - Integer.valueOf(input.getText()
                                                    .toString());
                                    DOBTv.setText(c.get(Calendar.DATE) + "/"
                                            + (c.get(Calendar.MONTH) + 1) + "/"
                                            + yy);
                                }
                            }
                        });
                alt_bld.setNegativeButton("cancel",
                        new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog,
                                    int which) {

                            }
                        });

                final AlertDialog alert = alt_bld.create();
                alert.show();

                alert.getWindow()
                        .setSoftInputMode(
                                WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
            }
        });

在此处输入图像描述

4

1 回答 1

1

尝试以下代码,该代码将显式调用软键盘以显示在屏幕上。显示对话框后编写以下代码。

InputMethodManager imm = (InputMethodManager)getSystemService(
            Context.INPUT_METHOD_SERVICE);
imm.showSoftInputFromInputMethod(your_edit_text.getWindowToken(), 0);
于 2013-06-24T13:30:46.623 回答