2012-12-10 17 views
6

新しいIcechream Sandwhichバージョンのスピナーを模倣しようとしています。ポップアップではなくドロップダウンリストのように見えますが、ダイアログを開きます。 See this link私が何を言っているのかを知るために。私は、ActionBarSherlockを使用して目的の効果を得ることを述べた記事を読んでいます。ただし、これはアクションバーでのみ使用するために作成されているため、アクションバーからICS Spinnerを取り出すにはどうすればよいですか?古いAndroidバージョンのICS Spinner(ダイアログではなくドロップダウン)

There is a pretty good answer here,まだ、これは少し不合理だと感じますか?簡単な方法がありますか?

答えて

17

まず、私は自分の質問に答えるべきかどうかについてthis linkを参照しました。私はこれが同じような問題に直面している人にとって非常に役立つと感じました。これがこのウェブサイトの適切なエチケットでない場合はお詫びします。

今、この問題の解決策を見つけようとしています。試行錯誤して成功しました。だから、あなたは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を設定する必要があります。ここでの唯一の大きな違いは、あなたがいうだけでOnItemSelectedListenerよりもIcsAdapterView.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" 
+3

+1。 – Ahmad

+2

アンドロイドサポートライブラリのスピナーのようなICSを使用する方法はありますか?私はActionBarSherlockを使用していません。 –

+1

@sureshcheemalamudi [ホロカラージェネレータ](http://android-holo-colors.com/)は、バックグラウンドと唯一の違いは、icsスピナーがアウトラインなし – oscarthecat

関連する問題