4

在我的表单中,我有一个 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”方法来“消除”错误吗?我怎样才能避免错误文本显得不完整?

Viele danke für alle Hilfe。:D

4

1 回答 1

7

至于清除错误,您可以像这样添加 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 行。我不确定这是否可行,但值得一试。

于 2012-05-30T15:50:27.663 回答