nice-spinner
nice-spinner copied to clipboard
setSelectedIndex crash
If the spinner uses a selected text formatter with a type, calling setSelectedIndex crashes:
java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Locale
...
at org.angmarch.views.NiceSpinner.setTextInternal(NiceSpinner.java:307)
at org.angmarch.views.NiceSpinner.setSelectedIndex(NiceSpinner.java:323)
Example:
val textFormatter: SpinnerTextFormatter<Locale> = SpinnerTextFormatter<Locale> {
locale -> SpannableString(locale.getDisplayName(defaultLocale))
}
view.locale_spinner.setSpinnerTextFormatter(textFormatter)
view.locale_spinner.setSelectedTextFormatter(textFormatter)
view.locale_spinner.attachDataSource(locales)
view.locale_spinner.selectedIndex = someIndex
The problem is setSelectedIndex calls setTextInternal(selectedTextFormatter.format(adapter.getItemInDataset(position)).toString()); which then calls setText(selectedTextFormatter.format(item)); but item is already a string and not the expected type.
METOO
代码下下来,修改下setTextInternal
代码下下来,修改下setTextInternal
修改成什么