2012-03-08 58 views

回答

24

嘗試使用該適配器爲您的微調:

ArrayAdapter<String> adapter = 
    new ArrayAdapter<String>(Home.Home_Group, R.layout.my_spinner_style, yourstringarray) 
{ 

    public View getView(int position, View convertView, ViewGroup parent) { 
     View v = super.getView(position, convertView, parent); 

     ((TextView) v).setTextSize(16); 
     ((TextView) v).setTextColor(
      getResources().getColorStateList(R.color.white) 
     ); 

     return v; 
    } 

    public View getDropDownView(int position, View convertView, ViewGroup parent) { 
     View v = super.getDropDownView(position, convertView, parent); 
     v.setBackgroundResource(R.drawable.spinner_bg); 

     ((TextView) v).setTextColor(
      getResources().getColorStateList(R.color.spinner_text) 
     ); 

     ((TextView) v).setTypeface(fontStyle); 
     ((TextView) v).setGravity(Gravity.CENTER); 

     return v; 
    } 
}; 

這個XML添加到您的佈局,

my_spinner_style.xml

<?xml version="1.0" encoding="utf-8"?> 
    <TextView xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+android:id/text1" 
     style="?android:attr/spinnerItemStyle" 
     android:singleLine="true" 
     android:textColor="#ffffff" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:ellipsize="marquee" /> 

,最後,

spinner.setAdapter(adapter); 
1

嘗試,你正在使用的下拉列表中,通過在該SDK中提供的默認提供的理解。

SIMPLY使自己的佈局,自定義適配器。

14

簡潔明快....

private OnItemSelectedListener your_spinner _name= new AdapterView.OnItemSelectedListener() { 
    public void onItemSelected(AdapterView<?> parent, View view, int pos, 
      long id) { 

     ((TextView) parent.getChildAt(0)).setTextColor(Color.BLUE); 


    } 

    public void onNothingSelected(AdapterView<?> parent) { 

    } 
}; 
+0

這正是我所需要的。如果你這樣做你雖然活動的onCreate()函數,用your_spinner.setOnItemSelectedListener(),不要忘記預防的onCreate出現時,你用<活動... Android手機的變化方向:configChanges =「方向|屏幕尺寸」 ... />,否則你將得到一個空錯誤。 – 2016-11-19 09:00:13

4

最簡單的形式是:

m_spnDia = (Spinner)findViewById(R.id.spiDia); 
TextView oTextView = (TextView)m_spnDia.getChildAt(0); 
oTextView.setTextColor(Color.RED); 
+2

npe:(...) – kgandroid 2015-03-12 05:48:56

+4

返回nullpointerexception – ManishSB 2015-08-27 07:12:19

3

到Andro'd答案較短的替代方案是讓ArrayAdapter從佈局爲您創建的項目意見資源:

final List<String> values = [SPINNER VALUES]; 
final ArrayAdapter<String> adapter = new ArrayAdapter<>(
    activity, R.layout.my_spinner_item, values); 
adapter.setDropDownViewResource(R.layout.my_spinner_dropdown_item); 
spinner.setAdapter(adapter); 

然後風格你的文字,以適應在my_spinner_item.xml您的需求:

<?xml version="1.0" encoding="utf-8"?> 
<TextView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1" 
    style="@style/my_spinner_item_style" 
/> 

注:my_spinner_dropdown_item時的選擇列表中出現

用於更多信息,請閱讀Spinners文檔。