如何在TextInputLayout中向errortext添加解析操作?

问题描述 投票:0回答:1

我有一个TextInputLayout文本验证用户输入。在某些情况下,我有“自动修复”的可能性,或者希望能够忽略某些警告,因此想要通过setError(...)向我输出的消息添加动作。

我已经尝试使用ClickableSpan,但这确实没有用,因为点击没有正确处理,可用性似乎也不好,因为动作文本太小而不容易被击中。不知何故,我正在寻找一种“标准”,材料风格的方式来动态显示一个动作按钮,可能在TextView的一侧有足够的空间,只要错误是“自动修复”。

android material-design android-textinputlayout
1个回答
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);
}
© www.soinside.com 2019 - 2024. All rights reserved.