2014-05-22 25 views
1

我正在顯示一個包含編輯文本的警告框,供用戶更改文件的名稱。如何在軟鍵盤顯示時選擇文本塊

但是,我想要自動選擇文件的後綴名(例如:「.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

你要爲重點和具體指示的Android提供鍵盤?試試這個關於大小:

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

這應該給焦點到的EditText同時選擇仍處於選中打開鍵盤。從你的問題,我解釋,而選擇文件名時,EditText不集中,觸摸EditText,然後取消選擇文件名。

+0

我正在使用警報對話框。我應該在哪裏放這個代碼?你可以參考我添加到問題中的代碼。 – Robin

+0

在調用'builder.setView(input)'之前,你有嘗試過嗎?請記住在我的示例代碼中將'myEditText'更改爲'input',因爲這就是您所謂的EditText。 – krodmannix

相關問題