检查后,复选框错误不会消失

Luc*_*ota 3 forms validation checkbox android android-layout

在我的表格中,我有一个CeckBox,需要检查提交.如果未选中,我调用setError()来警告用户.但是,一旦显示错误,无论是否选中复选框,它都不会消失.其他错误是如果错误文本很长,它看起来不完整.在横向模式下,它看起来很完整.

复选框xml:

<CheckBox 
        android:id="@+id/reg_terms"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Li e concordo com os Termos de Uso."
        android:focusableInTouchMode="true"
        android:focusable="true"
        android:textColor="#000000"
        android:checked="false"
        />
Run Code Online (Sandbox Code Playgroud)

验证(在submitButtons的onClick内):

if(!reg_terms.isChecked()){
  reg_terms.setError("É preciso aceitar os Termos de Uso");
  validation = false;
  }
Run Code Online (Sandbox Code Playgroud)

如果用户选中该框,我可以使用"addOnFocusChangedListener"methot来"解除"错误吗?我怎么能避免错误文本显示不完整?

VieledankefüralleHilfe.:d

fre*_*ing 6

至于清除错误,您可以像这样添加OnCheckedChangeListener:

reg_terms.setOnCheckedChangeListener(new OnCheckedChangeListener() {
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        if ( isChecked ) {
            reg_terms.setError(null);
        } else {
            reg_terms.setError("É preciso aceitar os Termos de Uso");
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

就个人而言,我也会将字符串提取到您的R.strings中,并在XML和代码中引用它.

对于文本换行,请尝试添加reg_terms.setMaxLines(2)到代码中以允许文本最多填充2行.我不确定这是否有效,但值得一试.