高级控件 下拉列表

下拉列表

数组适配器 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;
    }
}

猜你喜欢

转载自blog.csdn.net/LJD_2001/article/details/82689859