编辑:请忽略这个问题 - 我已经设法以一种适合我需要的方式解决它(请参阅下面我自己的答案)。
我有一个扩展 Spinner 的 WeatherSpinner 类。该类显示了我最初使用 anArrayAdapter<String>
但我现在想使用的区域名称ArrayAdapter<Locale>
(Locale 是我自己的抽象“空”类)。
ClassCastException
尝试使用以下内容填充我的 ArrayAdapter 时,我遇到了问题...
protected ArrayList<?> theList;
protected ArrayAdapter<Locale> aa = null;
...
protected void updateContents(ArrayList<?> list, int selectedItem) {
theList = list;
// Exception thrown on next line
aa = new ArrayAdapter<Locale>(theContext, android.R.layout.simple_spinner_item,
(Locale[]) theList.toArray());
...
}
我将一个RegionList
对象作为“列表”参数传递给 updateContents() 和RegionList extends ArrayList<Region>
, 和Region extends Locale
。我还重写了 Region 的toString()
方法以返回一个有效的字符串。
我在这里没有看到什么?我对ArrayList<?>.toArray()
工作方式有误吗?