亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android自定義輸入框提示功能

 更新時間:2020年09月29日 10:50:58   作者:起名想半天,費事  
這篇文章主要為大家詳細介紹了Android自定義輸入框提示功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Android自定義輸入框提示的具體代碼,供大家參考,具體內(nèi)容如下

這是系統(tǒng)提供的一個控件:AutoCompleteTextView

<AutoCompleteTextView
    android:layout_marginLeft="20dp"
    android:id="@+id/name_edit"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="6"
    android:completionThreshold="1"
    android:textSize="15sp"
    android:maxLength="10"
    android:singleLine="true"
    android:paddingBottom="4dp"
    android:background="@null"
    android:hint="請輸入姓名"/>

但是我們想在item的布局中加入其他東西怎么辦?這樣我們只能自己定義適配器,首先先看看AutoCompleteTextView需要的適配器的類型

查看AutoCompleteTextView的setAdapter()方法的源碼如下:

public <T extends ListAdapter & Filterable> void setAdapter(T adapter) {
 if (mObserver == null) {
  mObserver = new PopupDataSetObserver(this);
 } else if (mAdapter != null) {
  mAdapter.unregisterDataSetObserver(mObserver);
 }
 mAdapter = adapter;
 if (mAdapter != null) {
  //noinspection unchecked
  mFilter = ((Filterable) mAdapter).getFilter();
  adapter.registerDataSetObserver(mObserver);
 } else {
  mFilter = null;
 }

 mPopup.setAdapter(mAdapter);
}

自定義適配器核心代碼:

private PoiKeyTipListAdapter poiKeyTipListAdapter;

poiKeyTipListAdapter = new PoiKeyTipListAdapter(this);
  nameEdit.setAdapter(poiKeyTipListAdapter);
  nameEdit.addTextChangedListener(new TextWatcher() {
   @Override
   public void beforeTextChanged(CharSequence s, int start, int count, int after) {

   }

   @Override
   public void onTextChanged(CharSequence s, int start, int before, int count) {
    if(nameEdit.getText().toString().length()>1){
     //根據(jù)實際操作請求數(shù)據(jù)

    }
   }

   @Override
   public void afterTextChanged(Editable s) {

   }
  });
public class PoiKeyTipListAdapter extends BaseAdapter implements Filterable {
 private List<SendNameBean.DataBean> stringArrayList ;
 private Context context;
 private OnDataChangedListener changedListener;
 public PoiKeyTipListAdapter(Context context) {

  this.context = context;
 }
 public void setData(List<SendNameBean.DataBean> stringArrayList){
  this.stringArrayList = stringArrayList;
  notifyDataSetChanged();
 }
 @Override
 public int getCount() {
  return stringArrayList == null ? 0 : stringArrayList.size();
 }
 @Override
 public Object getItem(int position) {
  return stringArrayList == null ? null : stringArrayList.get(position);
 }
 @Override
 public long getItemId(int position) {
  return position;
 }
 @Override
 public View getView(final int position, View convertView, ViewGroup parent) {
  ViewHolder viewHolder;
  if (convertView == null){
   convertView = LayoutInflater.from(context).inflate(R.layout.item_input_tip_layout,parent,false);
   viewHolder = new ViewHolder();
   viewHolder.item_txt_tip = (TextView) convertView.findViewById(R.id.item_txt_tip);
   viewHolder.name = (TextView) convertView.findViewById(R.id.name);
   viewHolder.phone = (TextView) convertView.findViewById(R.id.phone);
   convertView.setTag(viewHolder);
  }else {
   viewHolder = (ViewHolder) convertView.getTag();
  }
  viewHolder.item_txt_tip.setText(stringArrayList.get(position).getProvinceName()+stringArrayList.get(position).getCityName()+stringArrayList.get(position).getCountyName()+stringArrayList.get(position).getTownName()+stringArrayList.get(position).getAddress());
  viewHolder.name.setText(stringArrayList.get(position).getName());
  viewHolder.phone.setText(stringArrayList.get(position).getPhone());


  convertView.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View v) {
    if (changedListener != null) {
     changedListener.dataChangedListener(stringArrayList.get(position));
    }
   }
  });

  return convertView;
 }


 static class ViewHolder{
  private TextView item_txt_tip ;
  private TextView name ;
  private TextView phone ;
 }


 @Override
 public Filter getFilter() {
  Filter filter=new Filter() {
   @Override
   protected FilterResults performFiltering(CharSequence constraint) {
    FilterResults results = new FilterResults();
    ArrayList<SendNameBean.DataBean> newData = new ArrayList<>();
    if(stringArrayList!=null && stringArrayList.size()!=0){
     newData.addAll(stringArrayList);
    }
    results.values = newData;
    results.count = newData.size();
    return results;
   }

   @Override
   protected void publishResults(CharSequence constraint, FilterResults results) {
    stringArrayList = (ArrayList)results.values;
    notifyDataSetChanged();
   }
  };
  return filter;
 }


 public interface OnDataChangedListener{
  void dataChangedListener(SendNameBean.DataBean dataBean);
 }


 public void setOnDataChangedListener(OnDataChangedListener changedListener){
  this.changedListener = changedListener;
 }

}

效果圖

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

相關文章

  • Android原生定位服務LocationManager

    Android原生定位服務LocationManager

    這篇文章主要為大家介紹了Android原生定位服務LocationManager實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • Android開發(fā)Intent跳轉(zhuǎn)傳遞list集合實現(xiàn)示例

    Android開發(fā)Intent跳轉(zhuǎn)傳遞list集合實現(xiàn)示例

    這篇文章主要為大家介紹了Android開發(fā)Intent跳轉(zhuǎn)傳遞list集合實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • Android 開發(fā)使用PopupWindow實現(xiàn)加載等待界面功能示例

    Android 開發(fā)使用PopupWindow實現(xiàn)加載等待界面功能示例

    這篇文章主要介紹了Android 開發(fā)使用PopupWindow實現(xiàn)加載等待界面功能,結合實例形式分析了Android使用PopupWindow組件實現(xiàn)加載等待界面功能相關布局與功能實現(xiàn)技巧,需要的朋友可以參考下
    2020-05-05
  • Android中Notification用法實例總結

    Android中Notification用法實例總結

    這篇文章主要介紹了Android中Notification用法,以實例形式較為詳細的分析并總結了Notification的功能與使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10
  • 通過實例解析android Activity啟動過程

    通過實例解析android Activity啟動過程

    這篇文章主要介紹了通過實例解析android Activity啟動過程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • android中多線程下載實例

    android中多線程下載實例

    本文以實例的方式為大家介紹下android中的多線程下載附源碼,感興趣的朋友可以學習下哈
    2013-06-06
  • Android持久化技術之文件的讀取與寫入實例詳解

    Android持久化技術之文件的讀取與寫入實例詳解

    這篇文章主要介紹了Android持久化技術之文件的讀取與寫入操作,結合實例形式較為詳細的分析講述了Android持久化操作的相關技巧與具體實現(xiàn)方法,需要的朋友可以參考下
    2016-01-01
  • popupwindow焦點問題解決方案

    popupwindow焦點問題解決方案

    在android 開發(fā)過程中,總會遇到一些問題,比如popupwindow焦點問題等等,我們該如何解決呢?需要的朋友可以了解下
    2012-11-11
  • Android實現(xiàn)探探圖片滑動效果

    Android實現(xiàn)探探圖片滑動效果

    這篇文章主要為大家詳細介紹了Android實現(xiàn)探探圖片滑動效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Android自定義gridView仿頭條頻道拖動管理功能

    Android自定義gridView仿頭條頻道拖動管理功能

    這篇文章主要介紹了Android自定義gridView仿頭條頻道拖動管理功能,本文通過實例代碼效果圖展示給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-12-12

最新評論