如何显示类似于TextView.setError()的微调器窗口小部件的验证错误

use*_*445 7 validation android spinner

如何显示类似于TextView.setError()的微调器小部件的验证错误我不想为每个微调器验证错误打开一个新的对话框,android.widget.Spinner类没有setError方法

Die*_*rik 19

如果你的微调器设置了默认的项目视图getSelectedView(),Spinner类的方法将返回一个TextView.在那你可以打电话setError(CharSequence)这就是我做的:

View selectedView = spinner.getSelectedView();
if (selectedView != null && selectedView instanceof TextView) {
    TextView selectedTextView = (TextView) selectedView;
    if (!valid) {
        String errorString = selectedTextView.getResources().getString(mErrorStringResource);
        selectedTextView.setError(errorString);
    }
    else {
        selectedTextView.setError(null);
    }
}
Run Code Online (Sandbox Code Playgroud)

Android 4.4上的结果如下所示:

Spinner有错误

  • 如何设置微调器默认值,因为每次调用spinner.getSelectedView()时我都为null,因为我的微调器上没有选择任何东西. (3认同)

小智 0

因此,您可以在微调器适配器的 getView 中使用“setError”。当然,如果你的微调器项目的 xml 有一个 TextView:

if(requeriedField && item.getValue() == 0){
    img_tittle_spinner.setError(activity.getResources().getString(R.string.FieldRequired));
}
Run Code Online (Sandbox Code Playgroud)