六、spinner下拉列表

使用simpleadapter包含图片的下拉选项,建立一个单一选项spinneritem.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="horizontal">

    <ImageView
        android:id="@+id/spinnerimg"
        android:layout_width="wrap_content"
        android:layout_height="69dp"
        android:src="@mipmap/ic_launcher"
        />
    <TextView
        android:id="@+id/spinnertext"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="20dp"
        android:textColor="#000000"
        android:text="网易云"
        android:layout_marginLeft="40dp"
        android:layout_marginTop="20dp"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintLeft_toRightOf="@+id/spinnerimg"/>


</android.support.constraint.ConstraintLayout>

显示页面spinner.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <!--显示spinner选中的内容-->
    <TextView
        android:id="@+id/spinner_textview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:textSize="20dp"
        android:layout_margin="10dp"
        app:layout_constraintTop_toBottomOf="@+id/spinner_spinner1"/>
    <Spinner
        android:id="@+id/spinner_spinner1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        app:layout_constraintTop_toTopOf="parent"></Spinner>

    <!--使用simpleAdapter适配器,下拉项中包含图片
        每一项样式是spinneritem.xml
    -->
    <Spinner
        android:id="@+id/spinner_spinner2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="40dp"
        app:layout_constraintTop_toTopOf="@+id/spinner_textview"></Spinner>
</android.support.constraint.ConstraintLayout>

数据绑定,事件处理spinner.java

package com.example.administrator.listview;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.SimpleAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Created by Administrator on 2018/3/10 0010.
 */

public class spinner extends AppCompatActivity implements AdapterView.OnItemSelectedListener{
    private Spinner spinner_spinner;
    private Spinner spinner_spinner2;
    private List<String> list;
    private List<Map<String,Object>> dataList;
    private TextView spinner_textView;
    private int[] icon={R.mipmap.ic_launcher,R.mipmap.ic_launcher,
            R.mipmap.ic_launcher,R.mipmap.ic_launcher,R.mipmap.ic_launcher,
            R.mipmap.ic_launcher,R.mipmap.ic_launcher,R.mipmap.ic_launcher,
            R.mipmap.ic_launcher};
    private  String[] iconName={"通讯录1","通讯录2","通讯录3","通讯录4",
            "通讯录5","通讯录6","通讯录7","通讯录8","通讯录9"};
    private SimpleAdapter simpleAdapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.spinner);

        spinner_spinner=(Spinner)findViewById(R.id.spinner_spinner1);
        spinner_textView = findViewById(R.id.spinner_textview);
        spinner_spinner2 = findViewById(R.id.spinner_spinner2);
        //1、设置数据源
        list=new ArrayList<String>();
        list.add("北京1");
        list.add("北京2");
        list.add("北京3");
        list.add("北京4");
        //2、建立数组适配器(arrayadapter)
        ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,list);
        //3、设置一个下拉列表样式
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        //4、spinner加载适配器
        spinner_spinner.setAdapter(adapter);
        //5、spinner设置监听器
        spinner_spinner.setOnItemSelectedListener(this);


        //使用simpleAdapter绑定spinner
        dataList =new ArrayList<Map<String,Object>>();
//        getdata();
        simpleAdapter=new SimpleAdapter(this,getdata(),R.layout.spinneritem,new String[]{"img","text"},new int[]{R.id.spinnerimg,R.id.spinnertext});
        spinner_spinner2.setAdapter(simpleAdapter);
//        spinner_spinner2.set/OnItemClickListener(this);
        spinner_spinner2.setOnItemSelectedListener(new Spinner.OnItemSelectedListener(){

            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
                Object text=simpleAdapter.getItemId(i);
                Log.i("tag", "onItemSelected: "+simpleAdapter.getItem(i).toString());
            }

            @Override
            public void onNothingSelected(AdapterView<?> adapterView) {

            }
        });
    }
    //下拉列表选择监听器
    @Override
    public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
        Object city= spinner_spinner.getItemAtPosition(i);
        spinner_textView.setText("您选择的城市是:"+city.toString());
    }

    @Override
    public void onNothingSelected(AdapterView<?> adapterView) {

    }
    private List<Map<String,Object>> getdata() {
        Log.i("tag", "iconlength="+icon.length);
        for (int i=0;i<icon.length;i++){
            Map<String,Object> map=new HashMap<String,Object>();
            map.put("img",icon[i]);
            map.put("text",iconName[i]);
            dataList.add(map);

        }
        return dataList;
    }
}





猜你喜欢

转载自blog.csdn.net/qq_38234785/article/details/79508998