在同一活动

时间:2018-02-01 22:47:23

标签: android

我以编程方式查看EditText作为主要功能。我需要能够编辑回来的内容,但每当我点击EditText时,一切都会被删除。当用户返回编辑时,如何避免在EditText上删除所有内容?(用户在相同活动中输入其他视图,然后返回编辑编辑文本中的内容)

对于其他功能,我实现了TextWatcher。

我应该在哪里改变这种行为(请看图片)?我虽然文本观察者可以改变这一点,但我想出了一些想法。

class CoolEditText{    
    textField = new EditText(c);
        textField.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
        textField.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
        textField.setLongClickable(false);
        textField.setTextIsSelectable(false);
    //more init here...

    textField.addTextChangedListener(new TextWatcher() {

        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
            //some code needed
        }

        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
            //some code needed
        }

        @Override
        public void afterTextChanged(Editable editable) {
            //some code needed
        }//....

Needed and current behaviour

已经解决了:

已经解决了这个问题。 Android的EditText的默认或常见行为是允许编辑它的内容。在我的问题上,我在代码中的其他地方有一个CoolEditText实例,其中实现了onFocusChange并将其分配给该实例。因此,在onFocusChage中,mText值被重置为空字符串。

class AnotherClass{ 
CoolEditText te = new CoolEditText();//...

te.setOnFocusChangeListener(new OnFocusChangeListener(){
                        @Override
                        public void onFocusChange(View view, boolean hasFocus) {
                            if(!te.equals("")){
                                te.setText(""); //i just delete this
                            }
                        }
                    });

因此,简介,EditText默认情况下允许编辑内部内容,要更改此行为,您应该分配OnFocusChangeListener并覆盖onFocusChange,以便更改此行为。

0 个答案:

没有答案