2016-08-11 40 views
0

我正在使用自定義微調程序庫Material Spinner。我已將適配器設置爲微調器,因爲我希望getDropDownView中的字體大小不同。我有三個spinners,其中兩個只顯示包名。中間的微調工作正常。在自定義微調器中獲取程序包名稱

enter image description here

一切爲比所述陣列和所述寬度其他所有三個微調器是相同的。那麼爲什麼中間微調。我無法弄清楚問題是什麼。

這不是一個重複的問題中提到

一個原因是,getView方法應該覆蓋。如下所示,已完成。我所做的發現,在第一個和第三個微調器的情況下,getView方法或getDropDownView方法未被調用。我不明白爲什麼。

getItemCountgetItemIdgetItem方法是不需要的。但是當我也有這些方法時,結果並沒有改變。

MaterialSpinner msDay = (MaterialSpinner) getActivity().findViewById(R.id.fgenderage_ms_day); 
    List dayList = Arrays.asList(getResources().getStringArray(R.array.fgenderage_day)); 
    msDay.setItems(new EnglishSpinnerAdapter(getActivity(), dayList)); 

    MaterialSpinner msMonth = (MaterialSpinner) getActivity().findViewById(R.id.fgenderage_ms_month); 
    List monthList = Arrays.asList(getResources().getStringArray(R.array.fgenderage_month)); 
    msMonth.setAdapter(new EnglishSpinnerAdapter(getActivity(), monthList)); 

    MaterialSpinner msYear = (MaterialSpinner) getActivity().findViewById(R.id.fgenderage_ms_year); 
    List yearList = Arrays.asList(getResources().getStringArray(R.array.fgenderage_year)); 
    msYear.setItems(new EnglishSpinnerAdapter(getActivity(), yearList)); 

適配器:

public class EnglishSpinnerAdapter extends MaterialSpinnerAdapter{ 
private List list; 
private Context ctx; 

public EnglishSpinnerAdapter(Context context, List items) { 
    super(context, items); 
    ctx = context; 
    list = items; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    TextView textView = new TextView(ctx); 
    textView.setText(list.get(position).toString()); 
    return textView; 
} 

@Override 
public View getDropDownView(int position, View convertView, ViewGroup parent) { 
    TextView textView = new TextView(ctx); 
    textView.setText(list.get(position).toString()); 
    return textView; 
} 
+0

是XML佈局視圖定義完全一樣? (ID除外) – KWA

+0

是的。只有寬度不同 – suku

回答

0

改變這種

msDay.setItem(new EnglishSpinnerAdapter(getActivity(), dayList)); 

這個

msDay.setAdapter(new EnglishSpinnerAdapter(getActivity(), dayList)); 
+0

哦......這真的很愚蠢。它沒有顯示錯誤。 – suku

+0

感謝您指點我正確的方向 – suku

+0

歡迎您=)。如果問題解決了,請接受答案。 –