使用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;
}
}