2014-10-16 1 views
1

아래와 같이 EditText를 만들었습니다. 불행히도, 내가 이것을 LG G3에서 테스트 할 때, EditText는 setText()에 의해 설정된 텍스트 부분을 지우지 못하게합니다. 이 텍스트를 선택한 다음 무언가를 입력하여 삭제할 수는 있지만 소프트 키보드의 backspace를 눌러 contentView.getPath()을 단순히 삭제할 수없는 이유를 모르겠습니다. 프로그래밍 방식으로 설정된 텍스트가 아닌 어디서나 텍스트를 입력하고 입력 된 텍스트를 삭제할 수도 있습니다.EditText는 프로그래밍 방식으로 설정된 텍스트를 삭제할 수 없습니다.

private void pathBox(){ 
    final EditText pathField = requestTyping(); //returns previously styled EditText 
    pathField.setHint(R.string.goto_hint); 
    pathField.setText(contentView.getPath(), BufferType.EDITABLE); 
    pathField.setImeOptions(EditorInfo.IME_ACTION_GO); 
    pathField.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_CLASS_TEXT); 
    pathField.setOnEditorActionListener(new OnEditorActionListener() { 
     @Override 
     public boolean onEditorAction(TextView v, int actionId, KeyEvent event){ 
      if (actionId == EditorInfo.IME_ACTION_GO || actionId == EditorInfo.IME_ACTION_DONE 
        || event.getKeyCode() == KeyEvent.KEYCODE_ENTER) { 
       contentView.setPath(pathField.getText().toString()); 
       pathField.clearFocus(); 
       AppUI.hideKeyboard(v); 
       return true; 
      } 
      return false; 
     } 
    }); 
    AppUI.showKeyboardFor(pathField); 
} 

전체 문제는 다음과 같습니다 https://www.youtube.com/watch?v=FyE67JAcGC4
나는 모든 EditTexts '콘텐츠의 편집, 수정 및 삭제를 사용하려면 어떻게해야합니까?

+0

'pathField.setText ("");'를 사용해 보셨습니까? – Karakuri

+0

그냥 setText (contentView.getPath());를 사용하여 editText 텍스트를 설정하려고했습니다. ? – zgc7009

+0

표준 방법이 작동하지 않는 것처럼 보였으므로 표준 setText (String)를 setText (String, BufferType)로 변경했습니다. 그러나 Bluestacks 에뮬레이터에서는 모든 것이 잘 보입니다. 수정할 수있는 경로를 표시하고 싶으므로 첨부 된 코드에서와 같이 수행하십시오. 어떻게 보이는지 보여주는 짧은 비디오를 업로드 할 예정입니다. – RedScorpio

답변

0

InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS 플래그가 문제의 원인입니다. 제거 할 때 자동 고침과 사전에 의한 불필요한 "힌트"로 사용자가 고민 할 수 있다는 사실을 제외하면 모든 것이 정상적으로 작동합니다.

관련 문제