如何将焦点设置到 AlertDialog 中的特定输入字段?

mjn*_*mjn 3 android android-alertdialog

在具有两个输入字段(用户名/密码)的登录对话框中,我想将焦点设置在第二个字段上(因为用户名存储在首选项中)。

AlertDialog.Builder 是否提供设置焦点的方法?

Oli*_*Oli 5

我也在使用alertdialog,你可以试试

final EditText input = new EditText(this);    
input.setInputType(InputType.TYPE_CLASS_TEXT); // you should use .TYPE_TEXT_VARIATION_PASSWORD
input.requestFocus();
Run Code Online (Sandbox Code Playgroud)

例子:

AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle(x);
        builder.setIcon(R.drawable.x);

        final EditText input = new EditText(this);

        input.setInputType(InputType.TYPE_CLASS_TEXT);
        input.setText("mytext");

        builder.setView(input);

        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { 
            @Override
          // xy

        });
        builder.setNegativeButton(cancel, new DialogInterface.OnClickListener() {
            @Override
            // xy
        });

        builder.show();

        input.requestFocus(); // <--- for the focus
    }
Run Code Online (Sandbox Code Playgroud)

问候