nice-spinner icon indicating copy to clipboard operation
nice-spinner copied to clipboard

setSelectedIndex crash

Open npabion opened this issue 5 years ago • 3 comments

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.

npabion avatar Jun 20 '20 13:06 npabion

METOO

nocrisis avatar Dec 03 '20 07:12 nocrisis

代码下下来,修改下setTextInternal

fanqGithub avatar Dec 09 '20 06:12 fanqGithub

代码下下来,修改下setTextInternal

修改成什么

nocrisis avatar Dec 14 '20 06:12 nocrisis