AlertDialog通过截取keydone EditText来关闭

时间:2012-08-03 18:13:43

标签: android alertdialog

我有一个AlertDialog,其中有一个EditText和两个典型按钮([取消]和[确定])

工作正常,但我需要拦截Edittext的keyDone,然后我必须关闭AlertDielog。

    public static void  Dialogo_Observaciones(Context context) {

    AlertDialog.Builder builder = new AlertDialog.Builder(context);
    builder.setTitle("Observaciones");
    builder.setMessage("Ingrese las observaciones");

    final EditText input = new EditText(context);
    input.setInputType(InputType.TYPE_CLASS_TEXT );
    input.setImeOptions(EditorInfo.IME_ACTION_DONE);

    input.setOnEditorActionListener(new TextView.OnEditorActionListener() {
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            if (actionId ==6){
            //HERE I must close the AlertDialog and others things   
            }
            return false;
        }
    });


    builder.setView(input);

    builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {

        public void onClick(DialogInterface dialog, int whichButton) {
            String Valor = input.getText().toString();
            if (Valor.equals("") ==false ){

                Variables.Observaciones = Variables.Observaciones + " " + Valor.trim();
                Variables.Observaciones = Variables.Observaciones.trim();
                dialog.cancel(); 


            }else{
                dialog.cancel();  

            }
        }
    });

    builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
            dialog.cancel();   

        }
    });

    builder.show();

}

提前致谢。

1 个答案:

答案 0 :(得分:0)

尝试使用

dialog.dimiss()

而不是取消。

另外,你确定if语句正文中的代码在你期望的时候运行吗?