Keep Running

导航

android客户端二级下拉框级联操作

在项目中,为了提高用户的体验效果,我们会用到级联操作,在android中关于下拉框的级联操作,我们可以使用Spinner。

关于Spinner,来自官方文档是这样介绍的:

A view that displays one child at a time and lets the user pick among them. The items in the Spinner come from the Adapter associated with this view。

简而言之就是

Spinner is a widget similar to a drop-down list for selecting items.

这次项目中的需求是这样的,用户选择一个城市,二级下拉框自动获取该城市下的所有区/县,下面分布讲解。

  1. 对于android应用程序而言,布局时是不可缺少的,很重要,就在第一点来讲,采用两个LinearLayout布局,第一个LinearLayout采用垂直方向总体布局,第二个LinearLayout采用水平方向对说明信息进行子节点布局
    View Code
  2. 这里主要在Activity中对布局文件进行操作。
    1. 对一些信息的声明:
              //市区/子菜单项信息
          private String[][] areaData = CityCountry.areaData;
          private ArrayAdapter<CharSequence> adapterArea = null;
          //spinner城市
          private Spinner mCity = null;
          //spinner县区
          private Spinner mCountry = null;
    2. 获得Spinner对象:
      // spinner下拉列表框二级菜单级联
      mCity = (Spinner) super.findViewById(R.id.city);
      mCountry = (Spinner) super.findViewById(R.id.area);
    3. 注册Spinner setOnItemSelectedListener监听事件:
      mCity.setOnItemSelectedListener(new  AdapterView.OnItemSelectedListener()
              {
      
                  @Override
                  public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long arg3)
                  {
                      // 表示选项改变的时候触发
                      MppspPhoneAlarmAct.this.adapterArea = new ArrayAdapter<CharSequence>(MppspPhoneAlarmAct.this,
                      // 定义所有的列表项
                      android.R.layout.simple_spinner_item, MppspPhoneAlarmAct.this.areaData[position]);
                      // 设置二级下拉列表的选项内容
                      MppspPhoneAlarmAct.this.mCountry.setAdapter(MppspPhoneAlarmAct.this.adapterArea);
                  }
      
                  @Override
                  public void onNothingSelected(AdapterView<?> arg0)
                  {
                      
                  }
                  
              });
  3. 部分效果图如下:

posted on 2012-05-31 18:45  Keep Running  阅读(8039)  评论(0编辑  收藏  举报