定义出第一个图片的布局和弹出框(一个listView)的布局,,这里就不在多说了~ListView需要自己定义一个MyspinnerAdapter~做好这些准备之后,就是弹出框的实现了~
protected void onCreate(Bundle savedInstanceState) { |
03 |
super.onCreate(savedInstanceState); |
04 |
setContentView(R.layout.activity_main); |
05 |
textView = (TextView) findViewById(R.id.text); |
06 |
imgView = findViewById(R.id.arrowbut); |
08 |
list = new ArrayList<String>(); |
12 |
// 实例化一个适配器,list的数据作为Adapter的数据 |
13 |
adapter = new MyspinnerAdapter(this, list); |
15 |
textView.setText((CharSequence) adapter.getItem(0)); |
16 |
spinnerlayout = (LinearLayout) findViewById(R.id.spinnerid); |
18 |
imgView.setOnClickListener(new OnClickListener() { |
21 |
public void onClick(View v) { |
29 |
@SuppressWarnings("deprecation") |
30 |
public void showWindow(View v) { |
32 |
layout = (LinearLayout) LayoutInflater.from(this).inflate(R.layout.mypinner_dropdown, null); |
34 |
listView = (ListView) layout.findViewById(R.id.listView); |
36 |
listView.setAdapter(adapter); |
38 |
popupWindow = new PopupWindow(v); |
40 |
popupWindow.setWidth(spinnerlayout.getWidth()); |
42 |
popupWindow.setHeight(LayoutParams.WRAP_CONTENT); |
43 |
// 设置一个透明的背景,不然无法实现点击弹框外,弹框消失 |
44 |
popupWindow.setBackgroundDrawable(new BitmapDrawable()); |
46 |
popupWindow.setOutsideTouchable(true); |
48 |
popupWindow.setFocusable(true); |
50 |
popupWindow.setContentView(layout); |
51 |
// 设置弹框出现的位置,在v的正下方横轴偏移textview的宽度,为了对齐~纵轴不偏移 |
52 |
popupWindow.showAsDropDown(v, -textView.getWidth(), 0); |
54 |
listView.setOnItemClickListener(new OnItemClickListener() { |
57 |
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { |
58 |
// TODO Auto-generated method stub |
59 |
textView.setText(list.get(arg2));// 设置所选的item作为下拉框的标题 |
61 |
popupWindow.dismiss(); |
spinner用法:
this.bank_name = (Spinner) super.findViewById(R.id.spinnerCityStatic);
this.bank_name.setOnItemSelectedListener(new OnItemSelectedListenerImpl());
// 下拉框选择事件
private class OnItemSelectedListenerImpl implements OnItemSelectedListener {
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
String city = parent.getItemAtPosition(position).toString();
Toast.makeText(BangBankActivity.this, "选择的城市是:" + city,
Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
}
}
- Android 自定义spinner下拉框实现的实现
请支持原创:http://blog.csdn.NET/geniuseoe2012/article/details/8723702 说到Android下拉框spineer,框架中虽有现成的控件,但实际效 ...
- Android自定义spinner下拉框实现的实现
一:前言 本人参考博客:http://blog.csdn.net/jdsjlzx/article/details/41316417 最近在弄一个下拉框,发现Android自带的很难实现我的功能,于是去 ...
- Android 自定义spinner下拉框实现
一:前言本人参考博客:http://blog.csdn.net/jdsjlzx/article/details/41316417 最近在弄一个下拉框,发现Android自带的很难实现我的功能,于是去网 ...
- 一分钟掌握Android spinner下拉框
Android 自带的spinner下拉框控件是一个不错的系统控件.主要有两种实现方式: 1.静态的spinner 在res\values中加入一个city资源数组文件 2 <resources ...
- Bootstrap Flat UI的select下拉框显示不出来 问题解决
Bootstrap Flat UI的select下拉框显示不出来?看这里,恰巧今天我也遇到了这个问题: 点击Messages后并没有出现下拉列表,然而官网的index.html却能显示出来. 经过一番 ...
- 自定义SWT控件一之自定义单选下拉框
一.自定义下拉控件 自定义的下拉框,是自定义样式的,其中的下拉框使用的是独立的window,非复选框的下拉框双击单机其它区域或选择完之后,独立window构成的下拉框会自动消失. package co ...
- Android中自定义xml文件给Spinner下拉框赋值并获取下拉选中的值
场景 实现效果如下 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 将布局改 ...
- Android Spinner 下拉框简单应用 详细注解
目录 Android Spinner 代码部分 Spinner代码介绍 核心代码 说在最后 @ Android Spinner Spinner 提供下拉列表式的输入方式,该方法可以有效节省手机屏幕上的 ...
- Android实现三级联动下拉框 下拉列表spinner
Android实现(省.市.县)三级联动下拉框 下拉列表spinner 转载请注明出处: http://www.goteny.com/articles/2013/11/46.html http://w ...
随机推荐
- Sublime 设置移动光标快捷键
发现问题 在使用Sublime和其他编辑器一个很不爽的问题是:在输入一个函数或者有左右的符号或者在引号内时,总是要跳出来,无奈方向键又在主键盘的另一边,只能不断的切换,太特么操蛋,就不能让手指不离开主 ...
- SayLove微信小程序
目录 SayLove 表白墙微信小程序 程序结构 说明 程序效果图 配置过程 结语 云开发 quickstart 参考文档 SayLove 表白墙微信小程序 项目地址:https://github.c ...
- Javascript根据指定下标或对象删除数组元素
删除数组元素在工作中经常会用到,本文讲解一下Javascript根据下标删除数组元素的方法,需要了解的朋友可以参考下 将一下代码放在全局js文件中: Js代码 /** *删除数组指定下标或指定对象 * ...
- shell脚本,配置文件加载顺序,以及什么时候加载。
在linux系统中,有/etc/profile,/etc/bashrc ,~/.bash_profile,~/bashrc这四个配置文件,这些文件,会自动的在某些时候加载,也就是点一下,一般都是些别名 ...
- 【Java_基础】JVM内存模型与垃圾回收机制
1. JVM内存模型 Java虚拟机在程序执行过程会把jvm的内存分为若干个不同的数据区域来管理,这些区域有自己的用途,以及创建和销毁时间. JVM内存模型如下图所示 1.1 程序计数器 程序计数器( ...
- lsof指令使用简介
lsof替代了netstat和ps的全部工作.它可以带来那些工具所能带来的一切,而且要比那些工具多得多 最重要的是,当你给它传递选项时,默认行为是对结果进行“或”运算.因此,如果是用-i来拉出一个端口 ...
- 如何用纯 CSS 创作一个蝴蝶标本展示框
效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/xzgZzQ 可交互视频教 ...
- C语言之链接库
链接库是windows的术语,但对于Linux来说,其概念是一样的.我们通常会把一些相似或相近功能的程序生成链接库,这样的好处是: 1)便于共享,开发软件时如需要相同功能时,不需要将大量重复的代码整合 ...
- Python面向对象(类之间的关系)(三)
类与类之间的关系 在我们的世界中事物和事物之间总会有一些联系. 在面向对象中. 类和类之间也可以产生相关的关系 1. 依赖关系 执行某个动作的时候. 需要xxx来帮助你完成这个操作. 此时的关系是最轻 ...
- PyCharm 社区版创建Django项目的一个方法
PyCharm 社区版创建项目无法选择Django等项目,只能选择Python项目. 你在进行练习的时候为了方便,可以用过期了的PyCharm专业版在可用的30分钟内创建社区版本不支持的项目,再用Py ...