擴充套件AutoCompleteTextView讓其預設顯示一組列表。
Java程式碼
- /**
- * <p>Specifies the minimum number of characters the user has to type in the
- * edit box before the drop down list is shown.</p>
- *
- * <p>When <code>threshold</code> is less than or equals 0, a threshold of
- * 1 is applied.</p>
- *
- * @param threshold the number of characters to type before the drop down
- * is shown
- *
- * @see #getThreshold()
- *
- * @attr ref android.R.styleable#AutoCompleteTextView_completionThreshold
- */
這時我們可以建立一個類 繼承AutoCompleteTextView,覆蓋enoughToFilter,讓其一直返回true就行。 然後再主動呼叫showDropDown方法, 就能在不輸入任何字元的情況下顯示下拉框。
Java程式碼
- package com.wole.android.pad.view;
- import
- import android.graphics.Rect;
- import android.util.AttributeSet;
- import android.widget.AutoCompleteTextView;
- /**
- * Created with IntelliJ IDEA.
- * User: denny
- * Date: 12-12-4
- * Time: 下午2:16
- * To change this template use File | Settings | File Templates.
- */
- publicclass InstantAutoComplete
- privateint myThreshold;
- public InstantAutoComplete(Context context) {
- super(context);
- }
- public InstantAutoComplete(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
- public InstantAutoComplete(Context context, AttributeSet attrs, int defStyle) {
- super(context, attrs, defStyle);
- }
- @Override
- publicboolean enoughToFilter() {
- returntrue;
- }
- @Override
- protectedvoid onFocusChanged(boolean focused, int direction,
- Rect previouslyFocusedRect) {
- super.onFocusChanged(focused, direction, previouslyFocusedRect);
- if (focused) {
- performFiltering(getText(), 0);
- showDropDown();
- }
- }
- publicvoid setThreshold(int threshold) {
- if (threshold < 0) {
- threshold = 0;
- }
- myThreshold = threshold;
- }
- publicint getThreshold() {
- return myThreshold;
- }
- }
Java程式碼
- searchSuggestionAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, new ArrayList<String>(5));
- search_et.setAdapter(searchSuggestionAdapter);
- search_et.addTextChangedListener(new TextWatcher() {
- @Override
- publicvoid beforeTextChanged(CharSequence s, int start, int count, int after) {
- }
- @Override
- publicvoid onTextChanged(CharSequence s, int start, int before, int count) {
- }
- 沒有輸入任何東西 則顯示預設列表,否則呼叫介面,展示下拉列表
- @Override
- publicvoid afterTextChanged(Editable s) {
- if (s.length() >= 1) {
- if (fetchSearchSuggestionKeywordsAsyncTask != null) {
- fetchSearchSuggestionKeywordsAsyncTask.cancel(true);
- }
- fetchSearchSuggestionKeywordsAsyncTask =new FetchSearchSuggestionKeywordsAsyncTask();
- fetchSearchSuggestionKeywordsAsyncTask.execute();
- }else{
- showHotSearchKeywords();
- }
- }
- });
- search_et.setOnItemClickListener(new OnItemClickListener() {
- @Override
- publicvoid onItemClick(AdapterView<?> parent, View view, int position, long id) {
- String item = searchSuggestionAdapter.getItem(position);
- search_et.setText(item);
- search_btn.performClick();
- }
- });
- //點選autocompletetextview時,如果沒有輸入任何東西 則顯示預設列表
- search_et.setOnTouchListener(new View.OnTouchListener() {
- @Override
- publicboolean onTouch(View v, MotionEvent event) {
- if (TextUtils.isEmpty(search_et.getText().toString())) {
- showHotSearchKeywords();
- }
- returnfalse;
- }
- });
Java程式碼
- //這裡發現很奇怪的事情, 需要每次new一個ArrayAdapter,要不然有時呼叫showDropDown不會有效果
- privatevoid showHotSearchKeywords() {
- MiscUtil.prepareHotSearchKeywords(getWoleApplication());
- searchSuggestionAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, getWoleApplication().hotSearchHistoryKeywords);
- search_et.setAdapter(searchSuggestionAdapter);
- searchSuggestionAdapter.notifyDataSetChanged();
- search_et.showDropDown();
- }
- privateclass FetchSearchSuggestionKeywordsAsyncTask extends AsyncTask<Void, Void, List<String>> {
- @Override
- protected List<String> doInBackground(Void... params) {
- List<String> rt = new ArrayList<String>(5);
- String keyword = search_et.getText().toString();
- if (!TextUtils.isEmpty(keyword)) {
- try {
- String result = NetworkUtil.doGet(BaseActivity.this, String.format(Global.API_SEARCH_SUGGESTIOIN_KEYWORDS, URLEncoder.encode(keyword, "utf-8")), false);
- Log.i("FetchSearchSuggestionKeywordsAsyncTask", result);
- if (!TextUtils.isEmpty(result)) {
- JSONArray array = new JSONArray(result);
- for (int i = 0; i < array.length(); i++) {
- JSONObject jsonObject = array.getJSONObject(i);
- rt.add(jsonObject.optString("keyword"));
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- return rt;
- }
- @Override
- protectedvoid onPostExecute(List<String> strings) {
- super.onPostExecute(strings);
- if (!strings.isEmpty()) {
- //這裡發現很奇怪的事情, 需要每次new一個ArrayAdapter,要不然有時呼叫showDropDown不會有效果
- searchSuggestionAdapter = new ArrayAdapter<String>(BaseActivity.this, android.R.layout.simple_dropdown_item_1line, strings);
- search_et.setAdapter(searchSuggestionAdapter);
- searchSuggestionAdapter.notifyDataSetChanged();
- }
- }
- }
相關推薦
擴充套件AutoCompleteTextView讓其預設顯示一組列表。
很多時候, 在做自動下拉框時,預設點上去時需要顯示一組預設的下拉資料。但是預設的AutoCompleteTextView是實現不了的, 因為setThreshold方法最小值是1,就算你設的值為0,也會自動改成1的。 Java程式碼 /** * <p>
TP框架裏面當訪問不存在的操作方法時讓其不顯示錯誤頁面
操作 pub 不顯示 public 錯誤 ech function 用戶 額外 當訪問空操作方法或者不存在的錯誤的操作方法的時候: 在該控制器頁面裏面寫一個 public function _empty(){ echo "您訪問的頁面有誤"; } 的
上下迴圈切換-只顯示一組中的其中一部分
前言:實現效果--型別於淘寶顯示圖片欄,一組4張展示圖片介紹,預設只顯示其中的3張,這裡是順著排列,並且可以迴圈。 <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8" />
art-template 模板定義變數並更改變數值 不讓其輸出顯示
在使用art-template.js出現如下的場景: 比如,迴圈體外面定義變數,並且在迴圈體內改變變數的值 但我又不想讓其顯示出來。 那我們一步一步的來實現以上的場景 看看會出現什麼神奇的
css中絕對定位的元素如何讓其居中顯示
對於前端工程師來說,頁面佈局是必備技能之一,我們經常有過這樣的需求,就是讓某個元素上下左右居中顯示的業務。常規來說一般水平居中使用margin:0 auto就能夠解決居中問題,但是當我們的元素居於父類是相對定位,自己是絕對定位的如何讓其相對於父類垂直居中對齊呢?
簡單java單例模式(單擊多次,如何讓視窗只顯示一次)
1.將實現功能的建構函式設為private 2.在寫一個public的構造方法: 如下: private static AddPerson addPerson = null; public static synchronized AddPerson GetInstance
關於Echarts的formatter函式的自定義(影象上顯示一組資料的影象,當滑鼠移上去的時候顯示五組資料)
前幾天,有那麼一個專案,要用Echarts這款外掛,實現一個柱狀圖的展示一組資料,其他的資料當滑鼠以上去影象上的時候,相應的影象顯示相應資料組,如下圖 這是最終的效果圖 這是傳過來的json檔案 { "data": [ { "free_space": 2.94
SpringMVC----RESTFUL_CRUD_顯示所有員工信息(使用一組靜態數據)
pos mvc 3.5 work info under his app_id .org 1.實體類 package com.yikuan.springmvc.crud.entities; import java.util.Date; import javax.vali
編寫程序從cin讀取一組數,輸出其和
cin stream sum num += pac 編寫 name while #include <iostream> using namespace std; int main() { int num, sum = 0; while (cin
C語言,產生一組數字,並將其寫入txt文件中
#include<stdio.h> /*產生一組連續的數字,並將其寫到txt文件中*/ /*說明:本程式在在win10 系統64位下用Dev-C++ 5.11版本編譯器編譯的*/int main(){ int m=1; FILE *fp=NULL; fp=fopen("D:\\1.txt","
作業一——根據成績計算出至少需要發多少獎金才能讓所有的組滿意。
狐進行了一次黑客馬拉松大賽,全公司一共分為了N個組,每組一個房間排成一排開始比賽,比賽結束後沒有公佈成績,但是每個組能夠看到自己相鄰的兩個組裡比自己成績低的組的成績,比賽結束之後要發獎金,以1w為單位,每個組都至少會發1w的獎金,另外,如果一個組發現自己的獎金沒有高於比自己成績低的組發的獎金,就會不
新增後如需修改,如何讓下拉框的值預設顯示對應的值的方法
首先來個下拉框 html 使用單位: <select name="unitId" id="unitId"> <option value="">--請選擇--</option> </select> 然後使
輸入一組數字,找出其排列的最小值
#include <iostream> using namespace std; void bubblesort(int a[], int x) { int y, z; for (y = 0; y <= x - 1; y++) {
c# combobox 如何讓文字中顯示預設的第一條資料
有時間去看看 http://blog.csdn.net/wqygogo/article/details/3404703 http://my.csdn.net/sunrain_hjb
【琴絃上、漫步】堅持把自己做過的每一件事記錄下來,讓其變成一種習慣。
姓名:李國冬 英文名:wintfru GitHub: 點選進入 Email:liguodongiot AT foxmail DOT com 學校:西南石油大學 學歷:本科 專注:Java、Hadoop、Elasticsearch、Spring等
在VS裡建立Windows窗體,讓其最小化在系統托盤,並顯示一個Icon圖示
C#實現系統托盤,C#窗體最小化時隱藏為工作列圖示的Window appllication 1.設定窗體屬性showintask=false 2.加notifyicon控制元件notifyicon1,為控制元件notifyicon1的屬性icon新增一個icon圖示。
CNN:(區域性感知+權共享機制:讓一組神經元使用相同的連線權)
(CNN主要用來識別位移、縮放及其他形式扭曲不變性的二維圖形。由於CNN的特徵檢測層通過訓練資料進行學習,所以在使用CNN時,避免了顯示的特徵抽取,而隱式地從訓練資料中進行學習;再者由於同一特徵對映面上的神經元權值相同,所以網路可以並行學習,這也是卷積網路相對於神經元彼此相連網路的一大優勢。卷積神經網路以其
區域性感知+權共享機制:讓一組神經元使用相同的連線權 和池化
提出:全連線的結構下會引起引數數量的膨脹,容易過擬合且區域性最優。影象中有固有的區域性模式可以利用,所以,提出了CNN,並不是所有上下層神經元都能直接相連,而是通過“卷積核”作為中介。同一個卷積核在所有影象內都是共享的,影象通過卷積操作後仍然保留原來的位置關係。 複合多個“卷積層”和“取樣層”對輸入
一組數字,求其能組成的最大數?
//一組正整數,求用這組正整數對應的數字字串連在一起能組成的最大數 #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAXN 20 #define MA
php微信公眾號查詢出關注列表,查詢出超過一萬粉絲的列表,並將其合併到一個數組
$fansAll = []; $url = "https://api.weixin.qq.com/cgi-bin/user/get?access_token=$token"; $data = ihttp_get($url); $fansObj = $data['conte