博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 自定义Spinner和其下拉窗口
阅读量:6218 次
发布时间:2019-06-21

本文共 1739 字,大约阅读时间需要 5 分钟。

自定义Spinner其实包括两个部分:

第一部分是用来打开下拉列表的按钮,如图,这个绿色背景直接设置Spinner的背景就行,素材文件如下:

里面的文字需要注意下,Spinner控件没有直接修改文字的接口,这个文字实际上是在Adapter中设置,例如:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(getContext(),

R.layout.spinner_checked_text, gradeList);

gradeSpinner.setAdapter(adapter);

 

这个spinner_checked_text.xml的实现如下:

必须是CheckedTextView,否则会出错。

 

第二部分就是那个弹出来的下拉窗口,这个是复写ArrayAdapter的getDropDownView()方法来实现的,代码如下:

ArrayAdapter
adapter = new ArrayAdapter
(getContext(), R.layout.spinner_checked_text, gradeList) { @Override public View getDropDownView(int position, View convertView, ViewGroup parent) { View view = inflate(getContext(), R.layout.spinner_item_layout, null); TextView label = (TextView) view .findViewById(R.id.spinner_item_label); ImageView check = (ImageView) view .findViewById(R.id.spinner_item_checked_image); label.setText(gradeList.get(position)); if (gradeSpinner.getSelectedItemPosition() == position) { view.setBackgroundColor(getResources().getColor( R.color.spinner_green)); check.setImageResource(R.drawable.check_selected); } else { view.setBackgroundColor(getResources().getColor( R.color.spinner_light_green)); check.setImageResource(R.drawable.check_unselect); } return view; } }; adapter.setDropDownViewResource(R.layout.spinner_item_layout);

其中spinner_item_layout.xml的内容如下:

转载地址:http://nkoja.baihongyu.com/

你可能感兴趣的文章
poj 2540 Hotter Colder(极角计算半平面交)
查看>>
自己整的QQ,新浪第三方登录
查看>>
入门视频采集与处理(显示YUV数据)
查看>>
NASA的CTO——开源软件使我们诚实
查看>>
SOJ - 11512
查看>>
pom格式
查看>>
mybatis中的#和$的区别
查看>>
Barareh on Fire
查看>>
Zabbix之配置文件详解
查看>>
extjs 回车键
查看>>
acm 小球 下落 (二叉树的应用)
查看>>
Android Studio如何集成Genymotion
查看>>
memcache与Redis
查看>>
这两道题目很相似 最优还钱方式 & 除法推导
查看>>
第9组 软件分析与用户体验分析
查看>>
北风设计模式课程---7、建造者模式
查看>>
JS中给函数参数添加默认值(多看课程)
查看>>
JSON 教程
查看>>
手工编写JavaWeb项目
查看>>
Ubuntu获取root权限
查看>>