软键盘出现时如何选择文本块

时间:2014-05-22 14:27:36

标签: android keyboard android-edittext selection

我正在显示一个带有编辑文本的警告框,供用户更改文件名。

但是,我想自动选择后缀文件的名称(例如:" .jpg")。

我使用EditText.setSelection(0, name.length()-4)并按照我的意愿选择名称块。

但是,当我点击编辑文本以打开软键盘时,选择就消失了。

如何防止选择消失?或者,如何在显示软键盘时自动设置选择?

以下是显示警告对话框的代码:

private void updateItemFileName(final long ID, final String oldName) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("Enter new name");
        final EditText input = new EditText(this);
        input.setLayoutParams(new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.MATCH_PARENT,
                LinearLayout.LayoutParams.MATCH_PARENT));
        input.setText(oldName);
        /* Select the "name" block except for the suffix*/
        input.setSelection(0, oldName.length() - 4);
        builder.setView(input);
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                //TODO: change the name and refresh list view
            }
        });
        builder.setNegativeButton("Cancel", null);
        builder.create().show();
}

1 个答案:

答案 0 :(得分:-1)

您是否正在设置焦点并专门指示Android提供键盘?试试这个尺寸:

if(myEditText.requestFocus()) {
    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
}

这应该将焦点放在EditText上,并在选择仍然处于选择状态时打开键盘。根据您的问题,我解释了在选择文件名时,EditText没有聚焦并触摸EditText然后取消选择文件名。