利用Spinner实现数据列表的整合,并且在单击数据组时实现监听

这篇博客记录了如何利用Spinner实现数据列表的整合,包括设置Spinner的OnItemSelectedListener监听选择项,通过setDropDownViewResource定制下拉列表样式。虽然功能未在最终项目中采用,但博主分享了相关知识点,如自定义布局可能需要的技术。由于没有提供截图,真机调试的效果未能展示。

          这个功能模块其实是我在项目构建的时候测试使用的,但是后来不符合客户要求,就剔除了,但是有几个知识点,我不想就这么删除后然后就忘记了,所以在此做一下笔记,如果帮得到其他朋友,那也最好不过了。

首先上功能实现的代码:

	public void SpinnerResouces() {
		spinner = (Spinner) findViewById(R.id.spinner);
		adapter = new ArrayAdapter<String>(GoogleMapActivity.this,
				android.R.layout.simple_spinner_item, stnm);
		spinner.setAdapter(adapter);
		spinner.setSelection(0, true);// 作用:避免监听器在程序运行的时候自动运行一次
		adapter.setDropDownViewResource(android.R.layout.preference_category);
		// 设置spinner的选项选中监听事件
		spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
			@Override
			public void onItemSelected(AdapterView<?> parent, View view,
					int position, long id) {
				// TODO Auto-generated method stub
				String stnmSelected = parent.getItemAtPosition(position)
						.toString();
				Toast.makeText(GoogleMapActivity.this,
						stnmSelected + "  " + position, 2).show();
				Point spinnerPoint = new Point(lng.get(position), lat
						.get(position));
				mapView.centerAt(spinnerPoint, true);
				mapView.setResolution(0.0153281135204059786);
				if (callout.isShowing() || callout != null) {
					callout.hide();
				}
				checkGraphic = position;
				DisplayCallout(spinnerPoint);
			}
		});
	}

其中,“spinner.setSelection(0, true);// 作用:避免监听器在程序运行的时候自动运行一次”。这句话其实是因为spinner的监听器在程序运行之初它就会自动触发一次。所以加上这句话,就可以避免这个问题的出现了。算是google的Bug吧。

“spinner.setOnItemSelectedListener(new OnItemSelectedListener()”这个是监听是否有单击选择了spinner中的item。然后监听触发事件。

“adapter.setDropDownViewResource(android.R.layout.preference_category);”设置spinner下拉列表的样式。系统有预设了很多种,网络上很多,我这里就不一一介绍。其实也可以自定义的。如果自定义其实就是在layout文件夹下新建一个布局文件,实现布局设置。这个可能需要有点技术了,对于新手来说需要多看看别人的自定义技术。

“AdapterView<?> parent”这个就是单击选中了第几个item。


知识点就这几个了。更深层次的开发,就需要大家自己去深入研究了。

真机调试,恕无效果截图~~

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值