zoukankan      html  css  js  c++  java
  • 列表选择Spinner

    1.只用XML配置来显示列表

    在res\values中添加一个arrays.xml

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <resources>
     3 
     4     <string-array name="books">
     5         <item>口里奇才</item>
     6         <item>凸显</item>
     7         <item>下雨目前</item>
     8         <item>越来越一直在于</item>
     9     </string-array>
    10 
    11 </resources>

    在主页面的xml中添加Spinner

    1     <Spinner
    2         android:id="@+id/spi3"
    3         android:layout_width="match_parent"
    4         android:layout_height="wrap_content"
    5         android:entries="@array/books" >
    6     </Spinner>

    效果

    2.用后台动态添加

    布局:

    1     <Spinner
    2         android:id="@+id/spi"
    3         android:layout_width="match_parent"
    4         android:layout_height="wrap_content" >
    5     </Spinner>

    添加数据类

     1 package com.example.myadapter;
     2 
     3 import java.util.ArrayList;
     4 import java.util.HashMap;
     5 import java.util.List;
     6 import java.util.Map;
     7 
     8 import com.example.androidspinner.R;
     9 
    10 public class Myadapter {
    11 
    12     public Myadapter() {
    13         // TODO Auto-generated constructor stub
    14     }
    15     
    16     public static List<String> getData(){
    17         List<String> list=new ArrayList<String>();
    18         list.add("北京");
    19         list.add("武汉");
    20         list.add("广州");
    21         return list;
    22     }
    23     
    24 }

    主程序中添加数据绑定

     1 package com.example.androidspinner;
     2 
     3 import java.util.List;
     4 import java.util.Map;
     5 
     6 import com.example.myadapter.Myadapter;
     7 
     8 import android.os.Bundle;
     9 import android.app.Activity;
    10 import android.view.Menu;
    11 import android.view.View;
    12 import android.widget.AdapterView;
    13 import android.widget.AdapterView.OnItemSelectedListener;
    14 import android.widget.ArrayAdapter;
    15 import android.widget.SimpleAdapter;
    16 import android.widget.Spinner;
    17 
    18 public class AndroidSpinnerActivity extends Activity {
    19     private Spinner spi;
    20 
    21     @Override
    22     protected void onCreate(Bundle savedInstanceState) {
    23         super.onCreate(savedInstanceState);
    24         setContentView(R.layout.activity_android_spinner);
    25         spi = (Spinner) this.findViewById(R.id.spi);
    26         List<String> list = Myadapter.getData();
    27         ArrayAdapter<String> adapter = new ArrayAdapter<String>(
    28                 AndroidSpinnerActivity.this,
    29                 android.R.layout.simple_spinner_item, list);
    30         spi.setAdapter(adapter);
    31 
    32                 }
    33 
    34           
    40 } 41 42 @Override 43 public boolean onCreateOptionsMenu(Menu menu) { 44 // Inflate the menu; this adds items to the action bar if it is present. 45 getMenuInflater().inflate(R.menu.activity_android_spinner, menu); 46 return true; 47 } 48 49 }

    3.选项加图标

    布局:

    1     <Spinner
    2         android:id="@+id/spi2"
    3         android:layout_width="match_parent"
    4         android:layout_height="wrap_content" >
    5     </Spinner>

    添加数据类

     1 package com.example.myadapter;
     2 
     3 import java.util.ArrayList;
     4 import java.util.HashMap;
     5 import java.util.List;
     6 import java.util.Map;
     7 
     8 import com.example.androidspinner.R;
     9 
    10 public class Myadapter {
    11 
    12     public Myadapter() {
    13         // TODO Auto-generated constructor stub
    14     }
    15     
    16         
    17     public static List<Map<String, Object>> getMapData(){
    18         List<Map<String, Object>> list=new ArrayList<Map<String,Object>>();
    19         Map<String, Object> map1=new HashMap<String, Object>();
    20         map1.put("logo", R.drawable.add);
    21         map1.put("appname", "北京");
    22         list.add(map1);
    23         
    24         Map<String, Object> map2=new HashMap<String, Object>();
    25         map2.put("logo", R.drawable.application);
    26         map2.put("appname", "武汉");
    27         list.add(map2);
    28         return list;
    29         
    30     }
    31 
    32 }

    主程序中添加数据绑定

     1 package com.example.androidspinner;
     2 
     3 import java.util.List;
     4 import java.util.Map;
     5 
     6 import com.example.myadapter.Myadapter;
     7 
     8 import android.os.Bundle;
     9 import android.app.Activity;
    10 import android.view.Menu;
    11 import android.view.View;
    12 import android.widget.AdapterView;
    13 import android.widget.AdapterView.OnItemSelectedListener;
    14 import android.widget.ArrayAdapter;
    15 import android.widget.SimpleAdapter;
    16 import android.widget.Spinner;
    17 
    18 public class AndroidSpinnerActivity extends Activity {
    19         private Spinner spi2;
    20 
    21     @Override
    22     protected void onCreate(Bundle savedInstanceState) {
    23         super.onCreate(savedInstanceState);
    24         setContentView(R.layout.activity_android_spinner);
    25 
    26         spi2 = (Spinner) this.findViewById(R.id.spi2);
    27 
    28         List<Map<String, Object>> listMap = Myadapter.getMapData();
    29 
    30         SimpleAdapter simpleAdapter = new SimpleAdapter(
    31                 AndroidSpinnerActivity.this, listMap, R.layout.items,
    32                 new String[] { "logo", "appname" }, new int[] { R.id.imgview,
    33                         R.id.labview });
    34         spi2.setAdapter(simpleAdapter);
    35         
    36         spi2.setOnItemSelectedListener(new OnItemSelectedListener() {
    37 
    38             @Override
    39             public void onItemSelected(AdapterView<?> parent, View arg1,
    40                     int position, long id) {
    41                 String appname=((Map<String,Object>)spi2.getItemAtPosition(position)).get("appname").toString();
    42                 setTitle(appname);
    43             }
    44 
    45             @Override
    46             public void onNothingSelected(AdapterView<?> arg0) {
    47                 // TODO Auto-generated method stub
    48                 
    49             }
    50         });
    51     }
    52 
    53     @Override
    54     public boolean onCreateOptionsMenu(Menu menu) {
    55         // Inflate the menu; this adds items to the action bar if it is present.
    56         getMenuInflater().inflate(R.menu.activity_android_spinner, menu);
    57         return true;
    58     }
    59 
    60 }

    作者:欢醉
    公众号【一个码农的日常】 技术群:319931204 1号群: 437802986 2号群: 340250479
    出处:http://zhangs1986.cnblogs.com/
    码云:https://gitee.com/huanzui
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    Top
  • 相关阅读:
    C程序中的raise和kill两个函数有何不同?
    修改目录proc下的tcp_tw_recycle报“只读文件系统”
    运行程序时报错“Value too large for defined data type”
    服务网格代理Envoy入门
    Docker入门之创建镜像初步
    联想笔记本上Ubuntu无线网卡问题
    Docker入门之安装Docker
    Python错误“ImportError: No module named MySQLdb”解决方法
    GLIBC中的库函数fflush究竟做了什么?
    Win10删除电脑3D对象等7个文件夹
  • 原文地址:https://www.cnblogs.com/zhangs1986/p/2871112.html
Copyright © 2011-2022 走看看