TextViewでsetError
を設定する方法と同様に、次のようなコードを呼び出すことができます。
spinner.setError("Error message");
ただし、setError
は、スピナーではなく、EditTextでのみ機能します。
スピナーフィールドが選択されていない場合、ユーザーに通知したいです。どうすればこのような通知を実行できますかToastを使用せずに?
このスレッドにはいくつかの解決策があります スピナーのsetError()を作成する :
EdmundYeung99の1つは、自分でアダプタを使用しているかどうかに関係なく機能します。検証関数に次のコードを追加するだけです。
TextView errorText = (TextView)mySpinner.getSelectedView();
errorText.setError("");
errorText.setTextColor(Color.RED);//just to highlight that this is an error
errorText.setText("my actual error text");//changes the selected item text to this
ただし、検証を行うときは、スピナーアダプターに少なくとも1つの値があることを確認してください。そうでない場合、空のアダプタが移入を待っているように、アダプタに空の文字列を取得させます。
ArrayAdapter<String> adapter = new ArrayAdapter<>(context, Android.R.layout.simple_spinner_item, new String[]{""});
mySpinner.setAdapter(adapter);
getSelectedView()
を使用すると、スピナークラスはテキストビューを返します。したがって、setError()
を間接的に使用できます。
((TextView)spinner.getSelectedView()).setError("Error message");
結果は次のようになります...
それが役立つことを願っています!
ここに解決策があります スピナーのエラーアイコンに加えて、非表示のTextViewを使用してポップアップメッセージを表示します。エラー状態の場合、スピナーは次のようになります。
エラー状態でない場合は、次のようになります。
完全なソリューションはここに文書化されています: https://stackoverflow.com/a/29956372/3063884