检查是否修改了EditText

时间:2013-03-27 21:06:54

标签: android android-edittext

我的应用应该在edittext中打开一个文件,以便向用户显示。如果用户想要修改它,只需按下textwiew并编写即可。在按下后退按钮后执行此操作后,如果文本被修改,则应保存更改,否则,只需关闭当前活动并转到父级。 有一种方法可以查看文本是否已编辑? 我的想法是明确地比较文件和edittext字符长度,但有什么比这个“粗鲁”的方法更好?

2 个答案:

答案 0 :(得分:3)

实际上你不得不比较文本而不是长度。用户可以只替换一个单词。 TextWatcher会告诉您用户正在编辑,但他可能会更改并将其更改回来。所以你真的需要比较字符串。

答案 1 :(得分:3)

您可以使用TextWatcher:

boolean changed = false;
EditText edit = (EditText)findViewById(R.id.medittext);
    edit.addTextChangedListener(new TextWatcher() {

        @Override
        public void afterTextChanged(Editable s) {
            // TODO Auto-generated method stub

        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            // TODO Auto-generated method stub

        }

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

            changed = true;



        } 

    });

如果更改与文本中的删除长度相同,那么仅比较长度可能会导致误报。

当用户按下时,只需检查changed是否为真。如果用户进行编辑然后解除编辑,这可能会导致误报,但最好有一些误报而不是丢失用户更改。