Android——(高級控件下拉框與搜索框)

1. 高級控件與低級控件區別
   是否使用適配器

2. 適配器種類和作用
  2.1 種類
      數組適配器 ArrayAdapter
        new ArrayAdapter<String>(this,R.layout.actv_style, names);

      簡單適配器 SimpleAdapter
        也叫“並不簡單的簡單適配器”^_^

      自定義適配器

2.2 作用
      橋樑
      展示

3. 高級控件使用步驟
  3.1 獲取數據
  3.2 創建適配器
  3.3 綁定適配器

4. 自動提示文本框
  4.1 AutoCompleteTextView(單一提示)
      android:completionThreshold="1"——設置多少字開始提示,默認爲2.

  4.2 MultiAutoCompleteTextView(多次提示)--作業
      //設置多次提示時,設置分隔符方法

MultiAutoCompleteTextView.Tokenizer t = new MultiAutoCompleteTextView.CommaTokenizer();

 mactv_main.setTokenizer(t);

  4.3 兩種自動提示文本框的異同
      AutoCompleteTextView:支持基本的自動完成功能,適用在各種搜索功能中,並且可以根據自己的需求設置他的默認顯示數據

代碼:

https://blog.csdn.net/waz929/article/details/83502582
      MultiAutoCompleteTextView: 可支持選擇多個值(在多次輸入的情況下),分別用分隔符分開,並且在每個值選中的時候再次輸入值時會自動去匹配。

代碼:

https://blog.csdn.net/waz929/article/details/83502737
      可用在發短信,發郵件時選擇聯繫人這種類型當中。

5. 下拉框
   Spinner

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.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 = new ArrayList<>();
    private ArrayAdapter adapter2;
    private Spinner spinner_main_img;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        /**
         * 高級控件下拉框
         */
//        初始化
        loadData2();
        adapter2 = new ArrayAdapter(this,R.layout.actv_main_item1,data2);
        spinner_main_img.setAdapter(adapter2);
    }

   
    /**
     * 高級控件下拉框
     * 僞造數據
      */
    private void loadData2() {
        List<Map<String,String>> list=new ArrayList<>();
        Map<String,String > map;
        for (int i=0;i<6;i++){
            map = new HashMap();
            map.put("bookId",i+"");
            map.put("bookName","傻逼"+i+"號");
            list.add(map);
        }
        for (Map<String, String> map2 : list) {
            data2.add(new Option(map2.get("bookId"),map2.get("bookName")));
        }
    }

    /**
     * 初始化
      */
    public void initView(){
        spinner_main_img = findViewById(R.id.spinner_main_img);
    }

    /**
     * 獲取下拉框的值
      * @param view
     */
    public void getContext(View view) {
        Option selectedItem = (Option) spinner_main_img.getSelectedItem();
        Toast.makeText(this, selectedItem.getValue(), Toast.LENGTH_SHORT).show();
    }

class Option {

    private String value;
    private String html;

    public String getValue() {
        return value;
    }

    public String getHtml() {
        return html;
    }

    public void setValue(String value) {
        this.value = value;
    }

    public void setHtml(String html) {
        this.html = html;
    }

    @Override
    public String toString() {
        return html;
    }

    public Option(String value, String html) {
        this.value = value;
        this.html = html;
    }
}

}

6.簡單控件

下拉框圖片加描述

https://blog.csdn.net/waz929/article/details/83503549

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章