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

时间:2012-05-30 15:27:10

标签: android forms validation android-layout checkbox

在我的表格中,我有一个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"
        />

验证(在submitButtons的onClick内部):

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

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

VieledankefüralleHilfe。 :d

1 个答案:

答案 0 :(得分: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");
        }
    }
});

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

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