android 下拉列表(Spinner)的学习与应用

 
第一步,还是先新建一个工程

 第二步。修改已经生成的res/layout/main.xml。整体替换为: 

<?xml version="1.0" encoding="utf-8"?>    

  1. <LinearLayout    
  2.     android:id="@+id/widget28"    
  3.     android:layout_width="fill_parent"    
  4.     android:layout_height="fill_parent"    
  5.     android:orientation="vertical"    
  6.     xmlns:android="http://schemas.android.com/apk/res/android" >    
  7.     <TextView    
  8.         android:id="@+id/TextView_Show"    
  9.         android:layout_width="fill_parent"    
  10.         android:layout_height="wrap_content"    
  11.         android:text="你选择的是"    
  12.         android:textSize="25sp">    
  13.     </TextView>    
  14.     <Spinner    
  15.         android:id="@+id/spinner_City"    
  16.         android:layout_width="fill_parent"    
  17.         android:layout_height="wrap_content">    
  18.     </Spinner><!-- 定义一个下拉菜单-->    
  19. </LinearLayout>    

第三步。添加关键代码 

 

import java.util.ArrayList;      import java.util.List;      import android.app.Activity;      import android.os.Bundle;      import android.view.MotionEvent;      import android.view.View;      import android.widget.AdapterView;      import android.widget.ArrayAdapter;      import android.widget.Spinner;      import android.widget.TextView;           public class spinner extends Activity {          /** Called when the activity is first created. */         private List<String> list = new ArrayList<String>();          private TextView myTextView;          private Spinner mySpinner;          private ArrayAdapter<String> adapter;             @Override         public void onCreate(Bundle savedInstanceState) {              super.onCreate(savedInstanceState);              setContentView(R.layout.main);              //第一步:添加一个下拉列表项的list,这里添加的项就是下拉列表的菜单项               list.add("北京");              list.add("上海");              list.add("深圳");              list.add("南京");              list.add("重庆");              myTextView = (TextView)findViewById(R.id.TextView_Show);              mySpinner = (Spinner)findViewById(R.id.spinner_City);              //第二步:为下拉列表定义一个适配器,这里就用到里前面定义的list。               adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, list);              //第三步:为适配器设置下拉列表下拉时的菜单样式。               adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);              //第四步:将适配器添加到下拉列表上               mySpinner.setAdapter(adapter);              //第五步:为下拉列表设置各种事件的响应,这个事响应菜单被选中               mySpinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener(){                  @SuppressWarnings("unchecked")               public void onItemSelected(AdapterView arg0, View arg1, int arg2, long arg3) {                      // TODO Auto-generated method stub                       /* 将所选mySpinner 的值带入myTextView 中*/                     myTextView.setText("您选择的是:"+ adapter.getItem(arg2));                      /* 将mySpinner 显示*/                     arg0.setVisibility(View.VISIBLE);                  }                  @SuppressWarnings("unchecked")               public void onNothingSelected(AdapterView arg0) {                      // TODO Auto-generated method stub                       myTextView.setText("NONE");                      arg0.setVisibility(View.VISIBLE);                  }              });              /*下拉菜单弹出的内容选项触屏事件处理*/             mySpinner.setOnTouchListener(new Spinner.OnTouchListener(){                  public boolean onTouch(View v, MotionEvent event) {                      // TODO Auto-generated method stub                       /* 将mySpinner 隐藏,不隐藏也可以,看自己爱好*/                     v.setVisibility(View.INVISIBLE);                      return false;                  }              });              /*下拉菜单弹出的内容选项焦点改变事件处理*/             mySpinner.setOnFocusChangeListener(new Spinner.OnFocusChangeListener(){              public void onFocusChange(View v, boolean hasFocus) {              // TODO Auto-generated method stub                   v.setVisibility(View.VISIBLE);              }              });          }      }   小结:

第一步:添加一个下拉列表项的list,这里添加的项就是下拉列表的菜单项   
第二步:为下拉列表定义一个适配器,这里就用到里前面定义的list。  
第三步:为适配器设置下拉列表下拉时的菜单样式。   
第四步:将适配器添加到下拉列表上  
第五步:为下拉列表设置各种事件的响应,这个事响应菜单被选中  

 本文转载自:http://blog.csdn.net/applezhengxd/article/details/5573693