"万年日历的实现涉及到了Spinner组件的使用,以及数据适配器的设置。" 在Android开发中,"日历"功能的实现可能会涉及到多种技术,但根据提供的部分内容,我们可以看到这里主要关注的是用户界面(UI)中的Spinner组件。Spinner是一种下拉选择框,通常用于展示一组可选项供用户选择。在这个例子中,"万年日历"可能包含了对不同层级地理区域的选择,比如省份、城市和国家。 首先,我们看到了三个私有的Spinner变量:`spin_province`、`spin_city`和`spin_contry`,分别对应省份、城市和国家的选择。这些变量都是Android的Spinner类实例,用于显示和处理用户的下拉选择。 接着,定义了三个ArrayAdapter:`provinceAdapter`、`cityAdapter`和`contryAdapter`。ArrayAdapter是Android中用于将数据集绑定到视图的适配器,这里是用来填充Spinner的选择项。每个适配器都关联了一种数据类型,分别是`Lines`、`Stations`和`Sites`,这可能是自定义的数据模型,代表省份、城市和国家的信息。 在`setSpinnerAdapter()`方法中,开发者首先从数据库或者其它数据源获取数据。`SearchSqlDataUtils.getBasicInfoBean()`和`SearchSqlDataUtils.getLines()`可能用于查询基础信息和线路数据。然后,通过`SearchSqlDataUtils.getStations()`方法,根据线路数据获取省份列表,并将其赋值给`province`。接下来,provinceAdapter被初始化并设置到`spin_province`,而cityAdapter则被初始化为`province.get(0).getStations()`的结果,即第一个省份的城市列表,最后这个adapter被设置到`spin_city`。`contryAdapter`的初始化没有在给出的代码中完成,但可以推断它应该与省份内的站点(Sites)数据相关。 这个过程展示了如何利用Android的Spinner组件来实现多级联动选择,当一个Spinner的选择改变时,可以通过监听其事件,更新下一个Spinner的选项,以此实现省份-城市-国家的逐级选择,这在日历应用中可能是为了定位用户的位置或设定特定地区的日期。 这个"万年日历"的实现涉及了Android UI组件(Spinner)的使用,数据适配器的概念,以及可能的数据库查询操作,通过这些技术来构建一个允许用户选择地理位置的交互界面。
private ArrayAdapter<Lines> provinceAdapter;
private ArrayAdapter<Stations>cityAdapter;
private ArrayAdapter<Sites>contryAdapter;
private int parentIndex;
spin_province=(Spinner) this.findViewById(R.id.spin_province);
spin_city=(Spinner) this.findViewById(R.id.spin_city);
spin_contry=(Spinner) this.findViewById(R.id.spin_contry);
public void setSpinnerAdapter()
{
//初始化三个Spinner的值
List<StationBasicInfoBean> infolist=SearchSqlDataUtils.getBasicInfoBean(getApplicationContext());
List<String>lines=SearchSqlDataUtils.getLines(infolist);
final List<Lines>province=SearchSqlDataUtils.getStations(lines, infolist);
provinceAdapter=new ArrayAdapter<Lines>(getApplicationContext(),android.R.layout.simple_spinner_item, province);
spin_province.setAdapter(provinceAdapter);
cityAdapter=new ArrayAdapter<Stations>(getApplicationContext(), android.R.layout.simple_spinner_item, province.get(0).getStations());
spin_city.setAdapter(cityAdapter);
contryAdapter=new ArrayAdapter<Sites>(getApplicationContext(), android.R.layout.simple_spinner_item,province.get(0).getStations().get(0).getSites());
spin_contry.setAdapter(contryAdapter);
//每条地铁线被选中触发的事件
spin_province.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int position, long arg3) {
cityAdapter=new ArrayAdapter<Stations>(getApplicationContext(), android.R.layout.simple_spinner_item, province.get(position).getStations());
spin_city.setAdapter(cityAdapter);
下载后可阅读完整内容,剩余4页未读,立即下载
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展