• android下拉菜单spinner的使用方法


    Spinner控件也是一种列表类型的控件,它的继承关系如下: 
    java.lang.Object 
       ↳ android.view.View 
         ↳ android.view.ViewGroup 
           ↳ android.widget.AdapterView<Textends android.widget.Adapter> 
             ↳ android.widget.AbsSpinner 
              ↳ android.widget.Spinner 
    android.widget.Spinner继承了android.view.ViewGroup类。

    在Android的UI开发中,Spinner(下拉列表)总是可以用到的,一个简单的自定义Spinner制作我们只需要记住这重要的五步,一个Spinner就可以应用而生了。

    (1)新建一个android工程,名称为Spinner。同时建一个Activity,名称为SpinnerActivity。

     

    (2)修改res/layout/main.xml

    [html] view plaincopy
    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="fill_parent"  
    5.     android:layout_height="fill_parent"  
    6.     >  
    7.     <TextView     
    8.         android:id = "@+id/TextView_city"     
    9.         android:layout_width = "wrap_content"     
    10.         android:layout_height = "wrap_content"     
    11.         android:text = "所在城市:"     
    12.      />     
    13.      <!-- 定义一个城市信息下拉菜单-->    
    14.     <Spinner     
    15.         android:id = "@+id/Spinner_city"     
    16.         android:layout_width = "wrap_content"     
    17.         android:layout_height ="wrap_content" >     
    18.     </Spinner >    
    19. </LinearLayout>  

    (3)SpinnerActivity.java 代码。

    [java] view plaincopy
    1. package cn.com;  
    2.   
    3. import java.util.ArrayList;  
    4. import java.util.List;  
    5.   
    6. import android.app.Activity;  
    7. import android.os.Bundle;  
    8. import android.view.MotionEvent;  
    9. import android.view.View;  
    10. import android.widget.AdapterView;  
    11. import android.widget.ArrayAdapter;  
    12. import android.widget.Spinner;  
    13. import android.widget.TextView;  
    14.   
    15. public class SpinnerActivity extends Activity {  
    16.     /** Called when the activity is first created. */    
    17.     private List<String> list = new ArrayList<String>();    
    18.     private TextView myTextView;    
    19.     private Spinner mySpinner;    
    20.     private ArrayAdapter<String> adapter;    
    21.     @Override    
    22.     public void onCreate(Bundle savedInstanceState) {    
    23.         super.onCreate(savedInstanceState);    
    24.         setContentView(R.layout.main);    
    25.         //第一步:添加一个下拉列表项的list,这里添加的项就是下拉列表的菜单项    
    26.         list.add("北京");    
    27.         list.add("上海");    
    28.         list.add("深圳");    
    29.         list.add("福州");    
    30.         list.add("厦门");    
    31.         myTextView = (TextView)findViewById(R.id.TextView_city);    
    32.         mySpinner = (Spinner)findViewById(R.id.Spinner_city);    
    33.         //第二步:为下拉列表定义一个适配器,这里就用到里前面定义的list。    
    34.         adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, list);    
    35.         //第三步:为适配器设置下拉列表下拉时的菜单样式。    
    36.         adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);    
    37.         //第四步:将适配器添加到下拉列表上    
    38.         mySpinner.setAdapter(adapter);    
    39.         //第五步:为下拉列表设置各种事件的响应,这个事响应菜单被选中    
    40.         mySpinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener(){    
    41.             public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {    
    42.                 // TODO Auto-generated method stub    
    43.                 /* 将所选mySpinner 的值带入myTextView 中*/    
    44.                 myTextView.setText("您选择的是:"+ adapter.getItem(arg2));    
    45.                 /* 将mySpinner 显示*/    
    46.                 arg0.setVisibility(View.VISIBLE);    
    47.             }    
    48.             public void onNothingSelected(AdapterView<?> arg0) {    
    49.                 // TODO Auto-generated method stub    
    50.                 myTextView.setText("NONE");    
    51.                 arg0.setVisibility(View.VISIBLE);    
    52.             }    
    53.         });    
    54.         /*下拉菜单弹出的内容选项触屏事件处理*/    
    55.         mySpinner.setOnTouchListener(new Spinner.OnTouchListener(){    
    56.             public boolean onTouch(View v, MotionEvent event) {    
    57.                 // TODO Auto-generated method stub    
    58.                 /** 
    59.                  *  
    60.                  */  
    61.                 return false;    
    62.             }  
    63.         });    
    64.         /*下拉菜单弹出的内容选项焦点改变事件处理*/    
    65.         mySpinner.setOnFocusChangeListener(new Spinner.OnFocusChangeListener(){    
    66.         public void onFocusChange(View v, boolean hasFocus) {    
    67.             // TODO Auto-generated method stub    
    68.   
    69.         }    
    70.         });    
    71.     }    
    72. }  

    运行结果如下图所示:


  • 相关阅读:
    国外程序猿整理的机器学习资源大全
    一个改动配置文件的linux shell script
    python高精度浮点型计算的诡异错误
    错误:'dict' object is not callable
    AssertionError while merging cells with xlwt (Python)
    Python => ValueError: unsupported format character 'Y' (0x59)
    [转]Python的3种格式化字符串方法
    python requirements使用方法
    conda虚拟环境实践
    迭代器中next()的用法
  • 原文地址:https://www.cnblogs.com/sowhat4999/p/4439870.html
Copyright © 2020-2023  润新知