我以编程方式查看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
}//....
已经解决了:
已经解决了这个问题。 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
,以便更改此行为。