下拉列表
数组适配器 ArrayAdapter
简单适配器 SimpleAdapter
package com.example.android_07;
public class Book {
private Integer id;
private String name;
private Integer image;
public Book() {
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getImage() {
return image;
}
public void setImage(Integer image) {
this.image = image;
}
}
定义了一些假数据
package com.example.android_07;
import java.util.ArrayList;
import java.util.List;
public class BookDAO {
public List<Book> list() {
List<Book> bookList = new ArrayList<Book>();
String[] names = {"愤怒的小鸟", "汤姆猫", "落汤鸡", "牛牛", "哈巴狗", "神龙", "烤鸭",
"小象", "美人鱼", "九尾狐"};
int[] images = {R.drawable.bird, R.drawable.cat, R.drawable.chicken,
R.drawable.cow, R.drawable.dog, R.drawable.dragon,
R.drawable.duck, R.drawable.elephant, R.drawable.fish,
R.drawable.fox};
Book b = null;
for (int i = 0; i < names.length; i++) {
b = new Book();
b.setId(i + 1);
b.setName(names[i]);
b.setImage(images[i]);
bookList.add(b);
}
return bookList;
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<AutoCompleteTextView
android:id="@+id/act_main_01"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!--不显示图片-->
<Spinner
android:id="@+id/s_main_01"
android:layout_width="match_parent"
android:layout_height="wrap_content"></Spinner>
<!--显示图片-->
<Spinner
android:id="@+id/s_main_02"
android:layout_width="match_parent"
android:layout_height="wrap_content"></Spinner>
</LinearLayout>
</LinearLayout>
用来展示的类
package com.example.android_07;
public class Option {
private String value;//值
private String html;//展示的值
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getHtml() {
return html;
}
public void setHtml(String html) {
this.html = html;
}
@Override
public String toString() {
return this.html;
}
public Option() {
}
public Option(String value, String html) {
this.value = value;
this.html = html;
}
}
package com.example.android_07;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.MultiAutoCompleteTextView;
import android.widget.SimpleAdapter;
import android.widget.Spinner;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MainActivity extends AppCompatActivity {
private List<Option> data2;
private ArrayAdapter<Option> aa2;
private Spinner s_main_01;
private List<Map<String,Object>> data3;
private SimpleAdapter sa;
private Spinner s_main_02;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
s_main_01=this.findViewById(R.id.s_main_01);
s_main_02=this.findViewById(R.id.s_main_02);
data2=loadData2();
aa2=new ArrayAdapter<Option>(this,R.layout.act_main_item1,data2);
s_main_01.setAdapter(aa2);
//设置选中获取到值
s_main_01.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Option selectItem=(Option) parent.getSelectedItem();
Toast.makeText(MainActivity.this, selectItem.getValue(), Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
//这个是显示图片的下拉列表
data3=loadData3();
sa=new SimpleAdapter(this,data3,R.layout.s_main_simple,new String[]{"name","image"},new int[]{R.id.tv_main_01,R.id.image_main_01});
s_main_02.setAdapter(sa);
}
private List<Map<String,Object>> loadData3(){
List<Book> list = new BookDAO().list();
List<Map<String,Object>> listMap=new ArrayList<>();
Map<String,Object> map=null;
for (Book book : list) {
map=new HashMap<>();
map.put("name",book.getName());
map.put("image",book.getImage());
listMap.add(map );
}
return listMap;
}
private List<Option> loadData2(){
List<Book> list = new BookDAO().list();
List<Option> optionList=new ArrayList<>();
for (Book book:list ) {
optionList.add(new Option(book.getId()+"",book.getName()));
}
return optionList;
}
}