0

私はAndroidプログラミングの初心者です。アイテムの背景色が異なるスピナーを作ろうとしていますが、わかりやすい情報が見つかりませんでした。詳細な説明付きの解決策を書いていただけますか?

これは私の addcourse クラスです:

public class Addcourse extends Activity{

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.addcourse);

Spinner spinner = (Spinner) findViewById(R.id.spinner1);

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
        R.array.color_array, android.R.layout.simple_spinner_item);

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

spinner.setAdapter(adapter);    
}

私はcolors.xmlに色を持っていますそして私のスピナー:

<Spinner
        android:id="@+id/spinner1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
4

1 に答える 1

1

背景色が設定されたビューを返す ArrayAdapter のサブクラスなど、独自の ListAdapter を提供する必要があります。テキストの色を変更する例については、こちらを参照してください。

Androidスピナーのアイテムのテキストの色を変更する

代わりに、super を呼び出して背景色を設定し、それを返すことができます。

ArrayAdapter<CharSequence> adapter = new ArrayAdapter(this, R.array.color_array, android.R.layout.simple_spinner_item) {
  public View getDropDownView(int position, View convertView, ViewGroup parent){
    View view = super.getDropwDownView(position, convertView, parent);
    int color = 0xFFFFFF; //white or use Color.argb(...)
    //change color according to position the way you want
    view.setBackgroundColor(color);
    return view;
  }
};
于 2012-12-25T13:34:28.180 に答える