2014-10-16 71 views
1

我制作了EditText,如下所示。不幸的是,当我在我的LG G3上测试这个时,EditText不允许我删除由setText()设置的任何文本部分。我可以选择此文本,然后通过键入内容将其删除,但我不明白为什么我不能简单地通过按下软键盘上的退格键来删除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 2014-10-16 17:47:19

+0

尝试使用setText(contentView.getPath())设置editText文本; ? – zgc7009 2014-10-16 18:13:32

+0

由于标准方式似乎不起作用,我将标准setText(String)更改为setText(String,BufferType)。然而在Bluestacks模拟器上一切都很好。 我想显示可以修改的路径,所以我按照附加的代码进行操作。我将上传短视频,演示它的外观。 – RedScorpio 2014-10-16 19:48:38

回答

0

InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS国旗是问题的原因。当被移除时,所有事情都会按照它应该的方式工作,除了用户可能会遇到自动更正和字典给出的不必要的“提示”这一事实。