我们可以在edittext中使用不可编辑的文本

时间:2009-05-26 11:03:23

标签: java android android-edittext

我正在使用EditText。是否可以将部分文字编辑为不可编辑,其余部分可以在同一EditText中编辑?

2 个答案:

答案 0 :(得分:16)

您可以使用

editText.setFocusable(false);

editText.setEnabled(false);

虽然禁用EditText目前不会忽略来自屏幕键盘的输入(我认为这是一个错误)。

根据应用程序的不同,最好使用拒绝所有更改的InputFilter

editText.setFilters(new InputFilter[] {
    new InputFilter() {
        public CharSequence filter(CharSequence src, int start,
            int end, Spanned dst, int dstart, int dend) {
            return src.length() < 1 ? dst.subSequence(dstart, dend) : "";
        }
    }
});

另见this问题。

答案 1 :(得分:2)

您可以实现TextChangedListener,以确保文本的这些部分不会deleted/overwritten

class TextChangedListener implements TextWatcher {
    public void afterTextChanged(Editable s) {
                makeSureNothingIsDeleted();
    }

    public void beforeTextChanged(CharSequence s, int start, int count, int after) {}

    public void onTextChanged(CharSequence s, int start, int before, int count) {}
}

    TextChangedListener tcl = new TextChangedListener();
    my_editable.addTextChangedListener(tcl);