现在的位置: 首页 > 综合 > 正文

android开发中spinner控件的使用

2013年10月06日 ⁄ 综合 ⁄ 共 2042字 ⁄ 字号 评论关闭

这文章是看完Mars 老师的教学视频后根据自己理解写的,所以部分内容引用到Mars 老师视频。

       ps :极力推荐初学android的朋友看Mars老师的视频。

 

正文:

        spinner控件就好比如我们电脑的下拉选择菜单,但由于手机屏幕的显示范围有限,所以就会弹出一个类似于对话框的选择菜单。如下图:

-------------------------------->

 

 

 

 

第二就是构造spinner控件的步奏:

          1.在布局文件中声明信息(如ID,宽高背景等)

<spinner
   android:"@+id/spinner"
   android:layout_wight="fill_parent"
   android:layout_height="wrap_content"
/>   
  

         2.在string.xml中声明一个数组,这个数组是弹出选择菜单的选项文字

 <string-array name="planets_array">
        <item>Mercury</item>
        <item>Venus</item>
        <item>Earth</item>
        <item>Mars</item>
        <item>Jupiter</item>
        <item>Saturn</item>
        <item>Uranus</item>
        <item>Neptune</item>
    </string-array>

      3.创建一个Arryadapter对象。并调用两个方法

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
        R.array.planets_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

其中createFromResource方法中有三个参数,分别表示:

      this:上下文对象,

      R.array.planets_array:引用在string.xml中声明的数组;

      android.R.layout.simple_spinner_item:设置主题;

其中setDropDownViewResource
方法是用来设置spinner中每一个选项的主题;

      4.得到一个spinner 对象然后设置对象的数据:

spinner.setaAdapter(adapter);//把上面设置好的adapter传进spinner中(相当于弹出菜单的内容);
spinner.setPrompt("测试");//弹出菜单的描述

第三是设置监听器来监听spinner的动作:

class spinnerListener implements OnItemSelectedListener {
    ...
    
    public void onItemSelected(AdapterView<?> parent, View view, 
            int pos, long id) {
        // An item was selected. You can retrieve the selected item using
        // parent.getItemAtPosition(pos)
    }

    public void onNothingSelected(AdapterView<?> parent) {
        // Another interface callback
    }
}

OnItemSelectedListener
类中可以复写两个函数:

        1.void
onItemSelected :用户选中了菜单中的某一项后程序要执行的动作(其中传入参数int pos就是被选中选项在菜单中的位置)

        2.void onNothingSelected :当用户什么都没有选中的情况下要执行的动作;

 

 

 

附加:上面说的是静态设置选择菜单中的内容,也就是说菜单中的选中是固定不可变的,但实际应用上很多时候选项是需要随着用户的操作而改变的,所以android就有一个动态设置ArrayAdapter的方法:

            过程是先设置一个List<T>的对象,再创建一个ArrayAdapter对象的构造函数:

public ArrayAdapter (Context context, int resource, int textViewResourceId, T[] objects)

传入四个参数:

       1.context:上下文对象;

       2.resource:设置菜单的样式(就是主题一般为R.layout.item的ID);

       3.textViewResourceId:指定textView空间的ID;

       4.T[] objects:就是上面设置的List对象;

 

                   

抱歉!评论已关闭.