如何向 TextInputLayout 中的错误文本添加解析操作?
How can I add a resolve-action to the errortext in an TextInputLayout?
我有一个验证用户输入的文本 TextInputLayout。在某些情况下,我有 "auto-fix" 的可能性,或者希望能够忽略一些警告,因此想向我通过 setError(...).
输出的消息添加一个动作
我已经尝试过使用 ClickableSpan,但这并没有真正起作用,因为点击没有得到正确处理,而且可用性似乎也不错,因为操作文本太小不容易点击。不知何故,我正在寻找一种 "standard"、material 风格的方式来动态显示操作按钮,可能在 TextView 的一侧有足够的 space,只要错误是 [=16] =].
最后我决定直接在 ErrorText 中执行操作并不那么容易处理,因此选择在 TextInputLayout 旁边使用 ImageButtons:
<android.support.design.widget.TextInputLayout
android:id="@+id/edit_activity_name_til"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:errorEnabled="true">
<android.support.design.widget.TextInputEditText
android:id="@+id/edit_activity_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/desc_activity_hint"
android:inputType="textCapWords|textAutoCorrect"
android:maxLines="1" />
</android.support.design.widget.TextInputLayout>
<ImageButton
android:id="@+id/quickFixButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:elevation="2dp"
android:visibility="gone"
app:srcCompat="@drawable/ic_undelete" />
然后在 Java 中显示和隐藏该图像按钮:
if(error){
mActivityNameTIL.setError(str);
mQuickFixBtn1.setVisibility(View.VISIBLE);
}else{
mActivityNameTIL.setError("");
mQuickFixBtn1.setVisibility(View.GONE);
}
我有一个验证用户输入的文本 TextInputLayout。在某些情况下,我有 "auto-fix" 的可能性,或者希望能够忽略一些警告,因此想向我通过 setError(...).
输出的消息添加一个动作我已经尝试过使用 ClickableSpan,但这并没有真正起作用,因为点击没有得到正确处理,而且可用性似乎也不错,因为操作文本太小不容易点击。不知何故,我正在寻找一种 "standard"、material 风格的方式来动态显示操作按钮,可能在 TextView 的一侧有足够的 space,只要错误是 [=16] =].
最后我决定直接在 ErrorText 中执行操作并不那么容易处理,因此选择在 TextInputLayout 旁边使用 ImageButtons:
<android.support.design.widget.TextInputLayout
android:id="@+id/edit_activity_name_til"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:errorEnabled="true">
<android.support.design.widget.TextInputEditText
android:id="@+id/edit_activity_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/desc_activity_hint"
android:inputType="textCapWords|textAutoCorrect"
android:maxLines="1" />
</android.support.design.widget.TextInputLayout>
<ImageButton
android:id="@+id/quickFixButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:elevation="2dp"
android:visibility="gone"
app:srcCompat="@drawable/ic_undelete" />
然后在 Java 中显示和隐藏该图像按钮:
if(error){
mActivityNameTIL.setError(str);
mQuickFixBtn1.setVisibility(View.VISIBLE);
}else{
mActivityNameTIL.setError("");
mQuickFixBtn1.setVisibility(View.GONE);
}