2016-08-11 39 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

欢迎您=)。如果问题解决了,请接受答案。 –