How to display validation error for a spinner widget similar to TextView.setError()

强颜欢笑 提交于 2020-05-25 04:55:05

问题


How to display validation error for a spinner widget similar to TextView.setError() I don't want to open a new dialog box for every spinner validation error, android.widget.Spinner class doesn’t have setError method


回答1:


If your spinner is set-up with default item views the getSelectedView() method on Spinner class will return a TextView. And on that you can call setError(CharSequence) Here is what I did:

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);
    }
}

Result looks like this on Android 4.4:

Spinner with error




回答2:


A somewhat cleaner way of doing Diederik's code:

static public void setSpinnerError(Spinner spinner, String error){
    View selectedView = spinner.getSelectedView();
    if (selectedView != null && selectedView instanceof TextView) {
        TextView selectedTextView = (TextView) selectedView;
        selectedTextView.setError(error);
    }
}

Just set error to null if you want to dismiss it.




回答3:


So, you can use 'setError' in your getView in the adapter of spinner. Of course, if your item's xml of your spinner has a TextView:

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


来源:https://stackoverflow.com/questions/19101375/how-to-display-validation-error-for-a-spinner-widget-similar-to-textview-seterro

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!