国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android編程實(shí)現(xiàn)輸入框動態(tài)自動提示功能

2019-12-12 03:29:14
字體:
供稿:網(wǎng)友

本文實(shí)例講述了Android編程實(shí)現(xiàn)輸入框動態(tài)自動提示功能。分享給大家供大家參考,具體如下:

關(guān)于AutoCompleteTextView的使用,我想大家并不陌生,對其設(shè)定上Adapter后系統(tǒng)便能自己識別與匹配了。近期 一個項(xiàng)目中,需要做到匹配通迅錄中的電話號碼和聯(lián)系人,由于通迅錄中數(shù)據(jù)量大,所以把所有的數(shù)據(jù)在自己提示之前就查詢出來并加入到 AutoCompleteTextView中是不現(xiàn)實(shí)的,所以我們可以使用cursor來動態(tài)加載AutoCompleteTextView的數(shù)據(jù),從而 實(shí)現(xiàn)時時搜索提示,要實(shí)現(xiàn)動態(tài)加載,只用重寫一個類繼承于CursorAdapter,然后設(shè)定在AutoCompleteTextView上就行了。

AutoCompleteTextView editNumber = (AutoCompleteTextView)findViewById(R.id.edit_number);Cursor cursor = getContentResolver()(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);ContactListAdapter listAdapter = new ContactListAdapter(this, cursor);editNumber.setAdapter(listAdapter);

ContactListAdapter.java中的核心代碼如下:

重寫newView方法

public View newView(Context context, Cursor cursor, ViewGroup parent) {  final LayoutInflater inflater = LayoutInflater.from(context);  final View view = (View)inflater.inflate(  R.layout.auto_complete, parent, false);  TextView txtName = (TextView)view.findViewById(R.id.txt_name);  txtName.setText(cursor.getString(0));  TextView txtNumber = (TextView)view.findViewById(R.id.txt_number);  txtNumber.setText(cursor.getString(1));  TextView txtType = (TextView)view.findViewById(R.id.txt_type);  String[] arrType = SmsConstant.ARR_CONTACTS_TYPE;  if(cursor.getint(2) > 3)  {    txtType.setText(arrType[0]);  } else  {    txtType.setText(arrType[cursor.getint(2)]);  }  return view;}

重寫bindView方法,

public void bindView(View view, Context context, Cursor cursor) {  TextView txtName = (TextView)view.findViewById(R.id.txt_name);  txtName.setText(cursor.getString(0));  TextView txtNumber = (TextView)view.findViewById(R.id.txt_number);  txtNumber.setText(cursor.getString(1));  TextView txtType = (TextView)view.findViewById(R.id.txt_type);  String[] arrType = SmsConstant.ARR_CONTACTS_TYPE;  if(cursor.getint(2) > 3)  {    txtType.setText(arrType[0]);  } else {    txtType.setText(arrType[cursor.getint(2)]);  }}

點(diǎn)擊彈出的Listview列表后的返回值:

public String convertToString(Cursor cursor) {}

執(zhí)行搜索的sql語句,返回一個Cursor加載到彈出的Listview上

public Cursor runQueryOnBackgroundThread(CharSequence constraint) {}

在此所返回的Cursor結(jié)果,會全部顯示在彈出提示上,無需再次過慮。

更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》、《Android圖形與圖像處理技巧總結(jié)》、《Android開發(fā)入門與進(jìn)階教程》、《Android調(diào)試技巧與常見問題解決方法匯總》、《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android基本組件用法總結(jié)》及《Android控件用法總結(jié)

希望本文所述對大家Android程序設(shè)計有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 沁阳市| 龙口市| 阿合奇县| 公主岭市| 三原县| 卫辉市| 陵水| 南宁市| 稻城县| 白水县| 舞阳县| 偃师市| 弥渡县| 多伦县| 许昌市| 靖宇县| 泾阳县| 民乐县| 盐山县| 应用必备| 沙田区| 南昌县| 台东县| 南开区| 嘉黎县| 泸西县| 安塞县| 宜君县| 德化县| 轮台县| 诸暨市| 广安市| 嘉兴市| 南阳市| 湖口县| 内黄县| 五原县| 农安县| 通辽市| 和田市| 双牌县|