如何向 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);
}