这个功能模块其实是我在项目构建的时候测试使用的,但是后来不符合客户要求,就剔除了,但是有几个知识点,我不想就这么删除后然后就忘记了,所以在此做一下笔记,如果帮得到其他朋友,那也最好不过了。
首先上功能实现的代码:
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。
知识点就这几个了。更深层次的开发,就需要大家自己去深入研究了。
真机调试,恕无效果截图~~
这篇博客记录了如何利用Spinner实现数据列表的整合,包括设置Spinner的OnItemSelectedListener监听选择项,通过setDropDownViewResource定制下拉列表样式。虽然功能未在最终项目中采用,但博主分享了相关知识点,如自定义布局可能需要的技术。由于没有提供截图,真机调试的效果未能展示。
2万+

被折叠的 条评论
为什么被折叠?



