您好,登錄后才能下訂單哦!
這篇文章給大家介紹Android開發中怎么實現一個輸入框提示功能,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
可以使用cursor
來動態加載AutoCompleteTextView的數據,從而 實現時時搜索提示,要實現動態加載,只用重寫一個類繼承于CursorAdapter
,然后設定在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)]); } }
點擊彈出的Listview列表后的返回值:
public String convertToString(Cursor cursor) {}
執行搜索的sql語句,返回一個Cursor加載到彈出的Listview上
public Cursor runQueryOnBackgroundThread(CharSequence constraint) {}
在此所返回的Cursor結果,會全部顯示在彈出提示上,無需再次過慮。
關于Android開發中怎么實現一個輸入框提示功能就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。