2010-12-29 5 views
0

EDIT:この質問を無視してください - 私は必要なものに対してうまく動作するように解決しました。Spinner/ArrayAdapterカスタムセットアップのヘルプが必要

私はSpinnerを拡張するWeatherSpinnerクラスを持っています。クラスは私が元々ArrayAdapter<String>を使って行った地域名を示していますが、今はArrayAdapter<Locale>(Localeは私自身の抽象的な '空'クラスです)を使いたいと思います。

次...

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()); 
    ... 

}

と私のArrayAdapterを投入しようとしたとき、私は 'リスト' として)(updateContentsにRegionListオブジェクトを渡しているClassCastExceptionを取得していますパラメータはRegionList extends ArrayList<Region>Region extends Localeです。また、有効なStringを返すためにRegionのtoString()メソッドをオーバーライドしました。

私はここで何を見ませんか? ArrayList<?>.toArray()の仕方が間違っていますか?

答えて

0

OK、解決済み。

Iは

Locale[] locArray = new Locale[theList.size()]; 
locArray = (Locale[]) theList.toArray(locArray); 
aa = new ArrayAdapter<Locale>(theContext, android.R.layout.simple_spinner_item, 
     locArray); 
...次のようにArrayListのののtoArray(T []の内容)メソッドを使用するために必要な