我有一个文本TextInputLayout,用于验证用户输入。在某些情况下,我有一个"自动修复"可能或希望能够忽略某些警告,因此希望在我通过setError(...)输出的消息中添加一个动作。
我已经尝试使用ClickableSpan,但这确实没有用,因为点击没有正确处理,可用性似乎也不好,因为动作文本太小而不容易被击中。不知何故,我正在寻找一种"标准",材料风格的方式来动态显示一个动作按钮,可能在TextView的一侧有足够的空间,每当错误是"自动修复&# 34。
答案 0 :(得分:0)
最后我决定直接在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);
}