AlertDialog中默认情况下不显示键盘

时间:2013-06-24 13:17:23

标签: android android-layout

我有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);
            }
        });

enter image description here

1 个答案:

答案 0 :(得分:1)

尝试以下代码,这些代码将明确调用软键盘显示在屏幕上。在显示对话框后写下面的代码。

InputMethodManager imm = (InputMethodManager)getSystemService(
            Context.INPUT_METHOD_SERVICE);
imm.showSoftInputFromInputMethod(your_edit_text.getWindowToken(), 0);