显示带EditText 的对话框进行编辑

项目中点击一个TEXT VIEW后,弹出编辑对话框,代码示例:


    public void showEditDialog( ){
        final EditText et = new EditText(context);
        et.setText("default data");
        et.setSelection(0, et.getText().toString().length());
        new AlertDialog.Builder(context).setTitle("dialog title")
                .setView(et)
                .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        // et.getText().toString();
                    }
                }).setNegativeButton("取消",null).show();

        Handler h = new Handler();
        h.postDelayed(new Runnable() {
            @Override
            public void run() {
                et.requestFocus();
                InputMethodManager imm = (InputMethodManager) context.
                        getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.showSoftInput(et, InputMethodManager.SHOW_IMPLICIT);
            }
        }, 200);
    }

其中 setSelection 是默认对话框显示中,帮助用户选中所有文字,这样用户可以直接删除,输入其希望的新内容。

Handler  post runnable 则是帮助用户弹出软键盘(输入法)。

猜你喜欢

转载自blog.csdn.net/wuzhong8809/article/details/108875578