【问题标题】:EditText does not allow to delete text set programaticallyEditText 不允许以编程方式删除文本集
【发布时间】:2014-10-16 17:25:33
【问题描述】:

如下所示,我制作了 EditText。不幸的是,当我在我的 LG G3 上进行测试时,EditText 不允许我删除由 setText() 设置的任何文本部分。我可以选择此文本,然后通过键入内容将其删除,但我不明白为什么我不能通过按软键盘上的退格键简单地删除 contentView.getPath()。我还可以在任何地方键入任何文本并删除键入的文本,但不能删除以编程方式设置的文本。

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 的内容?

【问题讨论】:

  • 你试过pathField.setText("");吗?
  • 尝试使用 setText(contentView.getPath()); 设置您的 editText 文本?
  • 我将标准 setText(String) 更改为 setText(String, BufferType) 因为标准方式似乎不起作用。然而,在 Bluestacks 模拟器上一切看起来都很好。我想显示可以修改的路径,所以我按照我附加的代码进行操作。我将上传短视频来演示它的外观。

标签: android text android-edittext backspace


【解决方案1】:

InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS 标志是问题的原因。删除后,一切正常,除了用户可能会遇到自动更正和字典给出的不必要的“提示”这一事实。

【讨论】:

    猜你喜欢
    • 2019-07-26
    • 1970-01-01
    • 1970-01-01
    • 2013-10-26
    • 2018-07-16
    • 2021-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多