0

我是 Android 编程的新手。我正在尝试制作一个其项目具有不同背景颜色的微调器,但我找不到任何可以理解的信息。你能给我写一个详细解释的解决方案吗?

这是我的附加课程:

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

您需要提供自己的 ListAdapter,例如 ArrayAdapter 的子类,它返回具有背景颜色集的视图。有关更改文本颜色的示例,请参见此处:

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 回答