Android 下拉列表框(spinner)

来源:互联网 发布:电脑网络枪战游戏大全 编辑:程序博客网 时间:2024/04/30 11:30

1、静态绑定下拉框数据

        需要将数据写在xml中,然后设置下拉框的entries属性,则数据自动加载到下拉框中。具体如下:

        在value文件夹中新建cityInfo.xml,xml中写入

[html] view plaincopy在CODE上查看代码片派生到我的代码片
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <resources>  
  3.     <string-array name="cityArray">  
  4.         <item>北京</item>  
  5.         <item>江苏</item>          
  6.         <item>浙江</item>  
  7.         <item>上海</item>          
  8.     </string-array>  
  9. </resources>  
        设计页面控件代码:

[html] view plaincopy在CODE上查看代码片派生到我的代码片
  1. <Spinner android:id="@+id/spinnerCityStatic"  
  2.   android:layout_width="wrap_content"  
  3.   android:layout_height="wrap_content"  
  4.   android:entries="@array/cityArray"/>  

        2、动态绑定下拉框数据

        主要三个步骤,1.获得数据列表;2.填充数据适配器;3.设置下拉框的适配器;

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. private Spinner spCity = null;  
  2. private ArrayAdapter<CharSequence> adapterCity = null;  
  3. private static String[] cityInfo={"北京","江苏","浙江","上海"};  
  4. //初始化函数中代码如下  
  5. this.spCity = (Spinner) super.findViewById(R.id.spinnerCity);  
  6. //将数据cityInfo填充到适配器adapterCity中  
  7. this.adapterCity = new ArrayAdapter<CharSequence>(this,  
  8.     android.R.layout.simple_spinner_dropdown_item, cityInfo);  
  9. //设置下拉框的数据适配器adapterCity  
  10. this.spCity.setAdapter(adapterCity);  

        3、选择时触发的事件

        需要实现OnItemSelectedListener接口的onItemSelected方法,代码如下

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. //下拉框选择事件  
  2. private class OnItemSelectedListenerImpl implements OnItemSelectedListener {  
  3.     @Override  
  4.     public void onItemSelected(AdapterView<?> parent, View view,  
  5.             int position, long id) {  
  6.         String city = parent.getItemAtPosition(position).toString();  
  7.         Toast.makeText(MainActivity.this"选择的城市是:" + city,  
  8.                 Toast.LENGTH_LONG).show();  
  9.     }  
  10.   
  11.     @Override  
  12.     public void onNothingSelected(AdapterView<?> parent) {  
  13.         // TODO Auto-generated method stub  
  14.     }  
  15.   
  16. }  

        4、获得下拉框所选的值

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. String cityStatic = spCityStatic.getSelectedItem().toString();  
       项目完整代码:

       前台设计页面activity_main.xml如下:

[html] view plaincopy在CODE上查看代码片派生到我的代码片
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical"  
  4.     android:layout_width="match_parent"  
  5.     android:layout_height="match_parent">  
  6.     <Spinner   
  7.         android:id="@+id/spinnerCityStatic"  
  8.         android:layout_width="wrap_content"  
  9.         android:layout_height="wrap_content"  
  10.         android:entries="@array/cityArray"/>  
  11.      <Spinner   
  12.         android:id="@+id/spinnerCity"  
  13.         android:layout_width="wrap_content"  
  14.         android:layout_height="wrap_content"/>  
  15.      <Button   
  16.         android:id="@+id/btnShowCity"  
  17.         android:layout_width="wrap_content"  
  18.         android:layout_height="wrap_content"  
  19.         android:text="查看选择的结果"/>  
  20. </LinearLayout>  
        后台页面MainActivity.java代码:

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. package com.example.spinner0803;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.view.View;  
  6. import android.view.View.OnClickListener;  
  7. import android.widget.AdapterView;  
  8. import android.widget.AdapterView.OnItemSelectedListener;  
  9. import android.widget.ArrayAdapter;  
  10. import android.widget.Button;  
  11. import android.widget.Spinner;  
  12. import android.widget.Toast;  
  13.   
  14. public class MainActivity extends Activity {  
  15.     private Button btnShowCity = null;  
  16.     private Spinner spCityStatic = null;  
  17.     private Spinner spCity = null;  
  18.     private ArrayAdapter<CharSequence> adapterCity = null;  
  19.     private static String[] cityInfo={"北京","江苏","浙江","上海"};  
  20.     @Override  
  21.     protected void onCreate(Bundle savedInstanceState) {  
  22.         super.onCreate(savedInstanceState);  
  23.         setContentView(R.layout.activity_main);  
  24.         //按钮相关  
  25.         btnShowCity = (Button) super.findViewById(R.id.btnShowCity);  
  26.         btnShowCity.setOnClickListener(new OnClickListenerImpl());  
  27.         //静态实现的下拉框,数据写在cityInfo.xml文件中  
  28.         this.spCityStatic = (Spinner) super  
  29.                 .findViewById(R.id.spinnerCityStatic);  
  30.         this.spCityStatic  
  31.                 .setOnItemSelectedListener(new OnItemSelectedListenerImpl());  
  32.         //动态实现的下拉框,数据在程序中获得,实际项目可能来自数据库等  
  33.         this.spCity = (Spinner) super.findViewById(R.id.spinnerCity);  
  34.         this.adapterCity = new ArrayAdapter<CharSequence>(this,  
  35.                 android.R.layout.simple_spinner_dropdown_item, cityInfo);  
  36.         this.spCity.setAdapter(adapterCity);  
  37.         this.spCity.setOnItemSelectedListener(new OnItemSelectedListenerImpl());  
  38.     }  
  39.     //按钮点击事件  
  40.     private class OnClickListenerImpl implements OnClickListener {  
  41.         @Override  
  42.         public void onClick(View v) {  
  43.             String cityStatic = spCityStatic.getSelectedItem().toString();  
  44.             String city = spCity.getSelectedItem().toString();  
  45.             String selectInfo = "第一个选择的城市是:" + city + ",第二个选择的城市是:"  
  46.                     + cityStatic;  
  47.             Toast.makeText(MainActivity.this, selectInfo, Toast.LENGTH_LONG)  
  48.                     .show();  
  49.         }  
  50.   
  51.     }  
  52.     //下拉框选择事件  
  53.     private class OnItemSelectedListenerImpl implements OnItemSelectedListener {  
  54.         @Override  
  55.         public void onItemSelected(AdapterView<?> parent, View view,  
  56.                 int position, long id) {  
  57.             String city = parent.getItemAtPosition(position).toString();  
  58.             Toast.makeText(MainActivity.this"选择的城市是:" + city,  
  59.                     Toast.LENGTH_LONG).show();  
  60.         }  
  61.   
  62.         @Override  
  63.         public void onNothingSelected(AdapterView<?> parent) {  
  64.             // TODO Auto-generated method stub  
  65.         }  
  66.   
  67.     }  

  1. }  




原文地址:http://blog.csdn.net/pfe_Nova/article/details/38362193

0 0
原创粉丝点击