まず、このリンクを参照して、自分の質問に答えるべきかどうかを確認しました。これは、同様の問題に直面している人にとって非常に役立つと感じたので、これがこのWebサイトの適切なエチケットではない場合はお詫びします(あなた自身の質問に答えるため)。
今、私はこの問題の解決策を見つけようとしてつまずき、試行錯誤して成功しました。したがって、ActionBarSherlock SDKをダウンロードしてプロジェクトにセットアップしたら、スピナーを組み込むレイアウトを作成します。
<com.actionbarsherlock.internal.widget.IcsSpinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/title"
android:layout_margin="10sp"
android:layout_centerHorizontal="true"
android:textSize="18sp" />
上記のコードは、ActionBarSherlockライブラリにあるスピナーのICSバージョンを使用します。次に、アクティビティでスピナーオブジェクトを宣言してインスタンス化します(キャストを使用)。ただし、通常のSpinnerクラスは使用せず、ActionBarSherlockライブラリにあるIcsSpinnerクラスを使用することに注意してください。
IcsSpinner spinner = (IcsSpinner)findViewById(R.id.spinner);
ここで、通常のスピナーの場合と同じように、次のようにアダプターを作成します。
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.spinner_item, elements);
spinner.setAdapter(adapter);
最後に、を設定する必要がありますonItemSelectedListener
。ここでの唯一の大きな違いは、単に:IcsAdapterView.OnItemSelectedListener
ではなく使用することです。OnItemSelectedListener
spinner.setOnItemSelectedListener(new IcsAdapterView.OnItemSelectedListener(){
@Override
public void onItemSelected(IcsAdapterView<?> parent, View view, int position, long id){
}
@Override
public void onNothingSelected(IcsAdapterView<?> parent){
}
});
以上です。スピナーオブジェクトを使用する場合とそれほど違いはありません。簡単ですが、理解するのに少し時間がかかりましたので、お役に立てば幸いです。
そうそう、(マニフェストで)次のようにActionBarSherlockテーマを使用することを忘れないでください:
android:theme="@style/Theme.Sherlock"