我正在显示一个带有编辑文本的警告框,供用户更改文件名。
但是,我想自动选择后缀文件的名称(例如:" .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();
}
答案 0 :(得分:-1)
您是否正在设置焦点并专门指示Android提供键盘?试试这个尺寸:
if(myEditText.requestFocus()) {
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
}
这应该将焦点放在EditText上,并在选择仍然处于选择状态时打开键盘。根据您的问题,我解释了在选择文件名时,EditText没有聚焦并触摸EditText然后取消选择文件名。