2012-12-25 4 views
0

Android 프로그래밍에서 매우 유용합니다. 항목의 배경색이 다른 회 전자를 만들려고하는데 이해할 수있는 정보를 찾을 수 없습니다. 상세한 설명이 담긴 솔루션을 저에게 쓸 수 있습니까? 나는 colors.xml 색상 그리고 내 스피너를 가지고배경색이 다른 회 전자

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);  
} 

:

이 내 addcourse 클래스입니다

당신은의 서브 클래스로 자신의 ListAdapter를 제공해야
<Spinner 
     android:id="@+id/spinner1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 

답변

1

배경색 세트가있는 뷰를 반환하는 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에서 오류가 발생합니다. 어떻게 해결할 수 있습니까? 네, 색상은 위치에 따라 다르므로 모든 항목마다 다른 색상이 적용됩니다. color.xml을 참조하지 않고이 클래스 내부의 색상을 지정할 수 있습니까 (예 : # 0000FF 사용)? – evis

+0

대신'setBackgroundColor()'를 사용하십시오. 업데이트 대답 –

+1

정확하게 그랬지만 회 전자는 선택의 여지가 없습니다 ... 아니면 뭔가 빠졌습니까? – evis