如何在AlertDialog中获取焦点的当前视图?

时间:2017-01-11 17:52:39

标签: android android-edittext alertdialog

我的AlertDialog包含多个EditText次观看。当用户点击清除按钮时,应从文本中清除具有焦点的当前视图。

我正在使用方法getCurrentFocus(),它返回一个视图并将其转换为EditText。但是,该方法始终返回 null

这是我正在使用的代码:

DialogBuilder.setNeutralButton("Clear", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    ((EditText) this.getCurrentFocus()).setText("");
                }
            })

1 个答案:

答案 0 :(得分:1)

您需要将当前焦点放在对话框而不是活动上。

要获得View上当前关注的Dialog,您可以将DialogInterface转换为Dialog

@Override
public void onClick(DialogInterface dialogInterface, int i) {
    ((EditText) ((Dialog) dialogInterface).getCurrentFocus()).setText(""); 
}