Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5694162
  • 博文数量: 409
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 8273
  • 用 户 组: 普通用户
  • 注册时间: 2013-10-23 19:15
个人简介

qq:78080458 学习交流群:150633458

文章分类

全部博文(409)

文章存档

2019年(127)

2018年(130)

2016年(20)

2015年(60)

2014年(41)

2013年(31)

分类: Android平台

2014-12-18 13:20:42

spinner,也就是下拉列表。在android中的下拉列表和windows中略有不同 ,它一弹出对话框的形式出现。




创建一个spinner的方法:
  1、在布局文件中声明
               android:id = "@+id/spinnerId"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       />
 
  2、在strings.xml中声明一个数组
     
        火星
        水星
        地球
        月亮
       

  
  3、创建一个ArrayAdapter
        //第一个参数是上下文对象,第二个参数引用了在strings.xml中定义的数组,第三个参数是指定spinner的样式,
           是一个系统自带的布局文件      
          ArrayAdapter adapter = ArrayAdapter.createFromResource(
          this,
          R.array.planets_array,
          android.layout_simple_spinner_item          
           );
           adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
 
 
       ArrayAdapter的另外一种创建方法
        List list = new ArrayList();
        list.add("test1");
        list.add("test2");
        //第二个参数指定每一个下拉列表的样式,第三个是TextView控件的id,第四个参数为整个列表提供数据
        ArrayAdapter adapter = new ArrayAdapter(this, R.layout.item, R.id.textViewId, list);
 
  4、得到spinner对象
       spinner = (Spinner)findViewById(R.id.spinnerId);
       spinner.setAdapter(adapter);
       spinner.setPrompt("测试");

 源代码:
MainActivity.java

点击(此处)折叠或打开

  1. public class MainActivity extends Activity
  2. {
  3.     
  4.     private Spinner spinner = null;
  5.     @Override
  6.     protected void onCreate(Bundle savedInstanceState)
  7.     {
  8.         super.onCreate(savedInstanceState);
  9.         setContentView(R.layout.activity_main);
  10.         //得到spinner对象
  11.         spinner = (Spinner)findViewById(R.id.spinnerId);
  12.         //创建一个ArrayAdapter对象
  13.         //第一个参数是上下文对象,第二个参数引用了在strings.xml中定义的数组,第三个参数是指定spinner的样式,是一个系统自带的布局文件
  14.       /*    ArrayAdapter adapter = ArrayAdapter.createFromResource(
  15.                     this,
  16.                     R.array.planets_array,
  17.                     android.R.layout.simple_spinner_item
  18.                 );
  19.         //设置spinner中每一个条目的样式,引用系统文件
  20.         adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  21.                 */
  22.           //ArrayAdapter的另外一种创建方法
  23.         List<String> list = new ArrayList<String>();
  24.         list.add("test1");
  25.         list.add("test2");
  26.         @SuppressWarnings("unchecked")
  27.         //第二个参数指定每一个下拉列表的样式,第三个是TextView控件的id,第四个参数为整个列表提供数据
  28.         ArrayAdapter adapter = new ArrayAdapter(this, R.layout.item, R.id.textViewId, list);
  29.           
  30.           //设置adapter
  31.           spinner.setAdapter(adapter);
  32.           //设置标题
  33.           spinner.setPrompt("测试");
  34.           //绑定监听器
  35.           spinner.setOnItemSelectedListener(new SpinnerOnSelectedListener());
  36.     }

  37.     class SpinnerOnSelectedListener implements OnItemSelectedListener{
  38.         //arg0是arg1的父控件 arg1是选中的条目 arg2是位置 arg3是id
  39.         @Override
  40.         public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
  41.                 long arg3)
  42.         {
  43.             // TODO Auto-generated method stub
  44.             
  45.         }

  46.         @Override
  47.         public void onNothingSelected(AdapterView<?> arg0)
  48.         {
  49.             // TODO Auto-generated method stub
  50.             
  51.         }
  52.     }
  53.     @Override
  54.     public boolean onCreateOptionsMenu(Menu menu)
  55.     {
  56.         // Inflate the menu; this adds items to the action bar if it is present.
  57.         getMenuInflater().inflate(R.menu.main, menu);
  58.         return true;
  59.     }

  60. }
string.xml

点击(此处)折叠或打开

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>

  3.     <string name="app_name">spinner</string>
  4.     <string name="action_settings">Settings</string>
  5.     <string name="hello_world">Hello world!</string>
  6.     <string-array name = "planets_array">
  7.         <item>火星</item>
  8.         <item>水星</item>
  9.         <item>地球</item>
  10.         <item>月亮</item>
  11.         </string-array>

  12. </resources>
activity_main.xml

点击(此处)折叠或打开

  1. <RelativeLayout xmlns:android=""
  2.     xmlns:tools=""
  3.     android:layout_width="match_parent"
  4.     android:layout_height="match_parent"
  5.     android:paddingBottom="@dimen/activity_vertical_margin"
  6.     android:paddingLeft="@dimen/activity_horizontal_margin"
  7.     android:paddingRight="@dimen/activity_horizontal_margin"
  8.     android:paddingTop="@dimen/activity_vertical_margin"
  9.     tools:context=".MainActivity" >

  10.     <Spinner
  11.      android:id = "@+id/spinnerId"
  12.      android:layout_width="fill_parent"
  13.      android:layout_height="wrap_content"
  14.     />
  15. </RelativeLayout>
item.xml

点击(此处)折叠或打开

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android=""
  3.     android:layout_width="match_parent"
  4.     android:layout_height="match_parent"
  5.     android:orientation="vertical" >
  6.  
  7.     <TextView
  8.         android:id="@+id/textViewId"
  9.         android:layout_width="fill_parent"
  10.         android:layout_height="wrap_content"
  11.         />
  12.         

  13. </LinearLayout>



阅读(13547) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~