1. 程式人生 > >android自動提示文字框和下拉框

android自動提示文字框和下拉框

自動提示框和下拉框佈局

<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:orientation="vertical"
    android:layout_height="match_parent"
tools:context=".MainActivity">
//自動提示文字框 <AutoCompleteTextView android:id="@+id/act_main_act1" android:layout_width="match_parent" android:layout_height="40dp" /> //下拉框 <Spinner android:id="@+id/sp_main_sp1" android:layout_width="match_parent"
android:layout_height="wrap_content">
</Spinner> <Spinner android:id="@+id/sp_main_sp2" android:layout_width="match_parent" android:layout_height="match_parent"></Spinner> </LinearLayout> ## **邏輯介面** ##

package com.example.android_06;

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.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 AutoCompleteTextView act_main_act1;
private String[] data1;
private ArrayAdapter adapter1;

private  Spinner sp1;
private List<Option> data2;
private  ArrayAdapter<Option> adapter2;

private  Spinner sp2;
private  List<Map<String,Object>> data3;
private SimpleAdapter adapter3;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    act_main_act1=findViewById(R.id.act_main_act1);
    sp1=findViewById(R.id.sp_main_sp1);
    sp2=findViewById(R.id.sp_main_sp2);

// 3.1 獲取資料
data1=new String[]{ “憤怒的小鳥”, “湯姆貓”, “落湯雞”, “牛牛”, “哈巴狗”, “神龍”, “烤鴨”, “小象”, “美人魚”, “九尾狐” };;
// 3.2 建立介面卡
adapter1=new ArrayAdapter(this,R.layout.act_main_item1,data1);
// 3.3 繫結介面卡
act_main_act1.setAdapter(adapter1);

    data2=loadData();
    adapter2=new ArrayAdapter<Option>(this,R.layout.act_main_item1,data2);
    sp1.setAdapter(adapter2);

    data3=loadData2();
    adapter3 =new SimpleAdapter(this,data3,R.layout.act_main_item2,new String[]{"name","image"},new int[]{R.id.tv_main_tv,R.id.iv_main_vi});
    sp2.setAdapter(adapter3);
}

private List<Map<String,Object>> loadData2() {
    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> loadData() {
    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;
}

}

“`