自定義一個Spinner適配器
- 這裏有個奇怪的事情不知道怎麼解釋 我在spinner中tv.setTextSize(14f)的時候,設置的數值單位就是dp,比如我想設置字體是14dp 這裏我如果通過工具類dp2px計算後傳給TextView 就會不正確,反而是直接設置爲14 就能得到想要的效果
public class MySpinnerAdapter extends ArrayAdapter<String> {
private Context mContext;
/**
* spinner綁定的數組
*/
private String[] mStringArray;
/**
*
* @param context Context對象
* @param stringArray spinner綁定的數組
*/
public MySpinnerAdapter(Context context, String[] stringArray) {
super(context, android.R.layout.simple_spinner_item, stringArray);
mContext = context;
mStringArray = stringArray;
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater inflater = LayoutInflater.from(mContext);
convertView = inflater.inflate(android.R.layout.simple_spinner_dropdown_item, parent, false);
}
TextView tv = (TextView) convertView.findViewById(android.R.id.text1);
tv.setText(mStringArray[position]);
tv.setTextSize(14f);
return convertView;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater inflater = LayoutInflater.from(mContext);
convertView = inflater.inflate(android.R.layout.simple_spinner_item, parent, false);
}
TextView tv = (TextView) convertView.findViewById(android.R.id.text1);
tv.setText(mStringArray[position]);
tv.setTextSize(14f);
return convertView;
}
}
在使用Spinner的時候需要重新給spinner設置自定義的適配器。