2012-12-25 113 views
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" /> 

回答

1

您需要提供自己的ListAdapter,如的一個子類使用背景顏色設置返回視圖的ArrayAdapter。 看到這裏關於改變文本的顏色爲例:

android change text color of items in spinner

可以改爲只調用超和設置背景顏色和返回。

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; 
    } 
}; 
+0

我在ViewGroup和setBackground得到錯誤我該如何解決它?是的,顏色取決於位置,所以每個項目都會有不同的顏色。我可以指定這個類中的顏色(例如:使用#0000FF),而不是引用color.xml嗎? – evis

+0

改爲使用'setBackgroundColor()'。更新了答案 –

+1

我的確如此,但是微調者沒有做出選擇......或者我失去了一些東西? – evis