我有一个EditText设置如下:
<EditText android:id="@+id/etField1" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="none" android:maxLines="1"
android:singleLine="true"
android:focusable="false"
android:longClickable="false"
android:clickable="true"
android:cursorVisible="false"
android:layout_weight="1"
android:textAppearance="@style/TextAppearance.Medium"
style="?android:attr/spinnerStyle"/>
Focusable
设置为false,因为我希望用户只需单击EditText,就会显示一个对话框。
我将错误设置如下:
etField1.setError("some error text");
etField1.requestFocus();
但是,由于focusable
为false,因此仅显示图标。错误文本未显示。
将focusable
设置为true将显示错误文本,但这不是可接受的解决方法。
是否有其他解决方案可以显示错误文本?
答案 0 :(得分:1)
试试这样:
<强> XML: - 强>
<EditText android:id="@+id/edit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:longClickable="false"
android:cursorVisible="false"
android:textAppearance="@style/TextAppearance.AppCompat.Button"
style="?android:attr/spinnerStyle"/>
将此代码放入您的活动类中。
EditText text3=(EditText)findViewById(R.id.edit);
text3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
text3.setFocusable(true);
text3.setError("some error text");
text3.requestFocus();
}
});