最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android中AutoCompleteTextView自動提示

 更新時(shí)間:2016年12月15日 10:09:48   投稿:lijiao  
這篇文章主要為大家詳細(xì)介紹了Android中AutoCompleteTextView自動提示的實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

我們使用控件AutoCompleteTextView 自動提示時(shí),有時(shí)需要設(shè)置BaseAdapter,設(shè)置BaseAdapter時(shí),需要實(shí)現(xiàn)Filterable,手動進(jìn)行篩選。

常用屬性

布局只設(shè)置了至少輸入一個(gè)字符顯示提示

<AutoCompleteTextView
    android:id="@+id/at"
    android:completionThreshold="1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

 private List<String> allData = new ArrayList<>();

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    allData.add("aa");
    allData.add("bb");
    allData.add("cc");
    allData.add("dd");
    allData.add("abc");
    allData.add("bcd");
    AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.at);
    MyAdapter adapter = new MyAdapter();
    textView.setAdapter(adapter);
  }

adapter適配器代碼

 class MyAdapter extends BaseAdapter implements Filterable {
    DataFilter filter;
    ArrayList<String> data;

    @Override
    public int getCount() {
      if (data != null && data.size() > 0) {
        return data.size();
      }
      return 0;
    }

    @Override
    public Object getItem(int i) {
      return null;
    }

    @Override
    public long getItemId(int i) {
      return 0;
    }

    @Override
    public View getView(int position, View view, ViewGroup viewGroup) {
      TextView textView = new TextView(MainActivity.this);
      textView.setText(data.get(position));
      return textView;
    }

    @Override
    public Filter getFilter() {
      if (filter == null) {
        filter = new DataFilter();
      }
      return filter;
    }

    private class DataFilter extends Filter {

      @Override
      protected FilterResults performFiltering(CharSequence prefix) {
        //查詢結(jié)果保存到FilterResults對象里
        FilterResults results = new FilterResults();
        List<String> queryData = new ArrayList<>();
        for (int i = 0; i < allData.size(); i++) {
          if (allData.get(i).contains(prefix.toString())) {
            queryData.add(allData.get(i));
          }
        }
        results.values = queryData;
        results.count = queryData.size();
        return results;
      }

      /**
       * 更新UI
       */
      @Override
      protected void publishResults(CharSequence constraint, FilterResults results) {

        List<String> queryData = (List<String>) results.values;
        if (data == null) {
          data = new ArrayList<>();
        }
        if (data.size() > 0) {
          data.clear();
        }

        if (queryData != null && queryData.size() > 0)
          for (String string : queryData) {
            data.add(string);
            notifyDataSetChanged();
          }
      }

    }
  }

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

乐安县| 景泰县| 宝山区| 广平县| 冕宁县| 和硕县| 濮阳市| 永州市| 丹棱县| 禄丰县| 贵南县| 财经| 通辽市| 石城县| 平山县| 巴彦县| 金华市| 泉州市| 衢州市| 鄂伦春自治旗| 博客| 平陆县| 晋州市| 大埔区| 德昌县| 上饶县| 汕头市| 溧阳市| 乌海市| 布拖县| 新密市| 清河县| 越西县| 长汀县| 酒泉市| 邵东县| 大港区| 金阳县| 北宁市| 得荣县| 木兰县|