欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android中使用Spinner实现下拉列表功能

程序员文章站 2023-11-13 13:05:10
spinner   spinner是一个列表选择框,会在用户选择后,展示一个列表供用户进行选择。spinner是viewgroup的间接子类,它和其他的android控件...

spinner

  spinner是一个列表选择框,会在用户选择后,展示一个列表供用户进行选择。spinner是viewgroup的间接子类,它和其他的android控件一样,数据需要使用adapter进行封装。

1,demo展示图片

Android中使用Spinner实现下拉列表功能

2,布局代码

//(layout)activity_main
<linearlayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:id="@+id/activity_main"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical"
 tools:context="com.test.spinner.mainactivity">
 <linearlayout
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:orientation="horizontal">
  <textview
   android:textsize="20sp"
   android:layout_margin="10dp"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="今年的常规赛mvp:"/>
  <textview
   android:id="@+id/text"
   android:textsize="20sp"
   android:layout_margintop="10dp"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"/>
 </linearlayout>
 <spinner
  android:visibility="gone"
  android:id="@+id/spinner"
  android:layout_marginleft="10dp"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content">
 </spinner>
</linearlayout>
-------------------------------------------------------------------
//(layout)item
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center_vertical">
 <imageview
  android:id="@+id/imageview"
  android:layout_width="80dp"
  android:layout_height="80dp"/>
 <textview
  android:id="@+id/textview"
  android:layout_marginleft="20dp"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"/>
</linearlayout>

3,activity代码

//mainactivity
import android.content.context;
import android.os.bundle;
import android.support.v7.app.appcompatactivity;
import android.view.menu;
import android.view.menuitem;
import android.view.view;
import android.widget.adapterview;
import android.widget.arrayadapter;
import android.widget.simpleadapter;
import android.widget.spinner;
import android.widget.textview;
import java.util.arraylist;
import java.util.hashmap;
import java.util.list;
import java.util.map;
import static com.test.spinner.r.id.simpleadapter;
public class mainactivity extends appcompatactivity {
 private context mcontext = mainactivity.this;
 private spinner mspinner;
 private arrayadapter<string> marrayadapter;
 private textview mtextview;
 private simpleadapter msimpleadapter;
 @override
 protected void oncreate(bundle savedinstancestate) {
  super.oncreate(savedinstancestate);
  setcontentview(r.layout.activity_main);
  initview();
  initdata();
 }
 private void initview(){
  mspinner = (spinner) findviewbyid(r.id.spinner);
  mtextview = (textview) findviewbyid(r.id.text);
 }
 private void initdata(){
  // 设置数据集
  list<string> list = new arraylist<>();
  list.add("哈登");
  list.add("莱昂纳德");
  list.add("詹姆斯");
  list.add("威斯布鲁克");
  list<map<string ,object>> maps = new arraylist<>();
  int[] icon = {r.mipmap.pic1 , r.mipmap.pic2, r.mipmap.pic3, r.mipmap.pic4};
  string[] iconname = {"哈登" , "莱昂纳德" , "詹姆斯" , "威斯布鲁克"};
  // 设置适配器
  marrayadapter = new arrayadapter<>(mcontext ,
    android.r.layout.simple_spinner_item , list);
  marrayadapter.setdropdownviewresource(android.r.layout.simple_spinner_dropdown_item);
  msimpleadapter = new simpleadapter(mcontext,
    maps , r.layout.item , new string[]{"image" , "text"} , new int[]{r.id.imageview ,r.id.textview});
  for(int i = 0 ; i < icon.length ; i++){
   map<string ,object> map = new hashmap<>();
   map.put("image", icon[i]);
   map.put("text" , iconname[i]);
   maps.add(map);
  }
 }
 @override
 public boolean oncreateoptionsmenu(menu menu) {
  getmenuinflater().inflate(r.menu.main , menu);
  return true;
 }
 @override
 public boolean onoptionsitemselected(menuitem item) {
  switch (item.getitemid()){
   case r.id.arrayadapter:
    mspinner.setvisibility(view.visible);
    mspinner.setadapter(marrayadapter);
    // 设置监听器
    mspinner.setonitemselectedlistener(new adapterview.onitemselectedlistener() {
     @override
     public void onitemselected(adapterview<?> adapterview, view view, int position, long id) {
      mtextview.settext(marrayadapter.getitem(position));
     }
     @override
     public void onnothingselected(adapterview<?> adapterview) {
     }
    });
    break;
   case simpleadapter:
    mspinner.setvisibility(view.visible);
    mspinner.setadapter(msimpleadapter);
    // 设置监听器
    mspinner.setonitemselectedlistener(new adapterview.onitemselectedlistener() {
     @override
     public void onitemselected(adapterview<?> adapterview, view view, int position, long id) {
      mtextview.settext(msimpleadapter.getitem(position)+"");
     }
     @override
     public void onnothingselected(adapterview<?> adapterview) {
     }
    });
    break;
   default:
    break;
  }
  return super.onoptionsitemselected(item);
 }
}

以上所述是小编给大家介绍的android中使用spinner实现下拉列表功能,希望对大家有所帮助