Spinner 定制化 增强版
Spinner
?
作为下拉选项列表 还是非常不错 且易用的?? 同时 也存在一些局限性 比如: 标题栏 下拉栏 显示内容必须一致? 这使得其
?
实用性大打折扣
?
?
?
?
1.? 先说说其不足之处 即: 标题 下拉 显示内容 相同问题:
?
*? 定义待显示内容 以TextView为例:
?
?
String[] content = {"eoe.android","eoe.mobile","eoe.mark","eoe.rd","eoe.mobile"};
?
?
?
*? 定义 CustomAdapter :
?
public class CustomAdapter extends BaseAdapter { Activity activity; public CustomAdapter(Activity a){ activity = a; }@Overridepublic int getCount() {// TODO Auto-generated method stubreturn content.length;}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubTextView tv = new TextView(activity);tv.setText(content[position]);tv.setTextSize(20);return tv;} }
?
?
?
*? emulator 运行效果 可以看出 标题 下拉 显示内容 是一样的
?
?
?
?
?
?
?
2.?? 使得 标题 下拉 二者显示内容不同
?
?
*? 定义标题显示内容:title?? 下拉继续使用上面定义的content
?
String[] title = {"0","1","2","3","4","5"};
?
?
?
*? 定义 CustomSpinnerAdapter:
?
public class CustomSpinnerAdapter implements SpinnerAdapter { Activity activity; public CustomSpinnerAdapter(Activity a){ activity = a; } @Overridepublic View getDropDownView(int position, View convertView,ViewGroup parent) {// TODO Auto-generated method stubTextView tv = new TextView(activity);tv.setText(content[position]);tv.setTextSize(20);tv.setTextColor(Color.RED);return tv;}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn content.length;}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic int getItemViewType(int position) {// TODO Auto-generated method stubreturn IGNORE_ITEM_VIEW_TYPE;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubTextView tv = new TextView(activity);tv.setText(title[position]);tv.setTextColor(Color.GREEN);return tv;}@Overridepublic int getViewTypeCount() {// TODO Auto-generated method stubreturn content.length;}@Overridepublic boolean hasStableIds() {// TODO Auto-generated method stubreturn false;}@Overridepublic boolean isEmpty() {// TODO Auto-generated method stubreturn false;}@Overridepublic void registerDataSetObserver(DataSetObserver observer) {// TODO Auto-generated method stub}@Overridepublic void unregisterDataSetObserver(DataSetObserver observer) {// TODO Auto-generated method stub} }
?
?
?
?
* emulator 运行截图?? 注意二者的不同显示
?
?
?