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;
}
}
“`