Android官方下拉选择控件Spinner

  

activity_main.xml

[java]  view plain  copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     xmlns:tools="http://schemas.android.com/tools"  
  4.     android:id="@+id/activity_main"  
  5.     android:layout_width="match_parent"  
  6.     android:layout_height="match_parent"  
  7.     android:orientation="horizontal"  
  8.     android:paddingBottom="@dimen/activity_vertical_margin"  
  9.     android:paddingLeft="@dimen/activity_horizontal_margin"  
  10.     android:paddingRight="@dimen/activity_horizontal_margin"  
  11.     android:paddingTop="@dimen/activity_vertical_margin"  
  12.     tools:context="com.yechaoa.spinnerdemo.MainActivity">  
  13.   
  14.     <Spinner  
  15.         android:id="@+id/spinner1"  
  16.         android:layout_width="0dp"  
  17.         android:layout_height="wrap_content"  
  18.         android:layout_weight="1"  
  19.         android:entries="@array/letter" />  指定数据源  
  20.   
  21.     <Spinner  
  22.         android:id="@+id/spinner2"  
  23.         android:layout_width="0dp"  
  24.         android:layout_height="wrap_content"  
  25.         android:layout_weight="1" />  
  26.   
  27.     <Spinner  
  28.         android:id="@+id/spinner3"  
  29.         android:layout_width="0dp"  
  30.         android:layout_height="wrap_content"  
  31.         android:layout_weight="1" />  
  32.   
  33. </LinearLayout>  


MainActivity.java

[java]  view plain  copy
  1. package com.yechaoa.spinnerdemo;  
  2.   
  3. import android.os.Bundle;  
  4. import android.support.v7.app.AppCompatActivity;  
  5. import android.util.Log;  
  6. import android.view.LayoutInflater;  
  7. import android.view.View;  
  8. import android.view.ViewGroup;  
  9. import android.widget.AdapterView;  
  10. import android.widget.ArrayAdapter;  
  11. import android.widget.BaseAdapter;  
  12. import android.widget.Spinner;  
  13. import android.widget.TextView;  
  14.   
  15. import java.util.ArrayList;  
  16.   
  17. public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener{  
  18.   
  19.     private Spinner spinner1;  
  20.     private Spinner spinner2;  
  21.     private Spinner spinner3;  
  22.     private String[] list1;  
  23.     private ArrayList<String> list2;  
  24.   
  25.     @Override  
  26.     protected void onCreate(Bundle savedInstanceState) {  
  27.         super.onCreate(savedInstanceState);  
  28.         setContentView(R.layout.activity_main);  
  29.   
  30.         initView();  
  31.         initData();  
  32.         initListener();  
  33.   
  34.     }  
  35.   
  36.     /** 
  37.      * 初始化控件 
  38.      */  
  39.     private void initView() {  
  40.         spinner1 = (Spinner) findViewById(R.id.spinner1);  
  41.         spinner2 = (Spinner) findViewById(R.id.spinner2);  
  42.         spinner3 = (Spinner) findViewById(R.id.spinner3);  
  43.     }  
  44.   
  45.     /** 
  46.      * 初始化数据 
  47.      */  
  48.     private void initData() {  
  49.         list1 = new String[]{"1","2","3"};  
  50.         ArrayAdapter<String> adapter=new ArrayAdapter<>(this,android.R.layout.simple_spinner_item, list1);  
  51.         adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);  
  52.         spinner2.setAdapter(adapter);  
  53.   
  54.         list2 = new ArrayList<>();  
  55.         list2.add("Android");  
  56.         list2.add("IOS");  
  57.         list2.add("H5");  
  58.         spinner3.setAdapter(new MyAdapter());  
  59.     }  
  60.   
  61.     /** 
  62.      * 初始化监听器 
  63.      */  
  64.     private void initListener() {  
  65.         spinner1.setOnItemSelectedListener(this);  
  66.         spinner2.setOnItemSelectedListener(this);  
  67.         spinner3.setOnItemSelectedListener(this);  
  68.     }  
  69.   
  70.     /** 
  71.      * 
  72.      * @param parent parent是你当前所操作的Spinner 
  73.      */  
  74.     @Override  
  75.     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {  
  76.         switch (parent.getId()){  
  77.             case R.id.spinner1:  
  78.                 String[] letter = getResources().getStringArray(R.array.letter);  
  79.                 Log.i("spinner1点击------",letter[position]);  
  80.                 break;  
  81.             case R.id.spinner2:  
  82.                 Log.i("spinner2点击------",list1[position]);  
  83.                 break;  
  84.             case R.id.spinner3:  
  85.                 Log.i("spinner3点击------",list2.get(position));  
  86.                 break;  
  87.         }  
  88.     }  
  89.   
  90.     /** 
  91.      * 没有数据的时候执行 
  92.      */  
  93.     @Override  
  94.     public void onNothingSelected(AdapterView<?> parent) {  
  95.   
  96.     }  
  97.   
  98.     /** 
  99.      * 自定义的Adapter 
  100.      */  
  101.     private class MyAdapter extends BaseAdapter {  
  102.   
  103.         @Override  
  104.         public int getCount() {  
  105.             return list2.size();  
  106.         }  
  107.   
  108.         @Override  
  109.         public Object getItem(int i) {  
  110.             return null;  
  111.         }  
  112.   
  113.         @Override  
  114.         public long getItemId(int i) {  
  115.             return 0;  
  116.         }  
  117.   
  118.         @Override  
  119.         public View getView(int position, View convertView, ViewGroup viewGroup) {  
  120.             ViewHolder holder ;  
  121.             if(convertView==null){  
  122.                 convertView = LayoutInflater.from(MainActivity.this).inflate(R.layout.item_text, viewGroup, false);  
  123.                 holder = new ViewHolder();  
  124.                 holder.itemText= (TextView) convertView.findViewById(R.id.item_text);  
  125.                 convertView.setTag(holder);  
  126.             }else{  
  127.                 holder = (ViewHolder) convertView.getTag();  
  128.             }  
  129.             holder.itemText.setText(list2.get(position));  
  130.             return convertView;  
  131.         }  
  132.     }  
  133.     class ViewHolder {  
  134.         TextView itemText;  
  135.     }  
  136.   
  137. }  


Demo: https://github.com/bige-ye/SpinnerDemo
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值