Android AutoCompleteTextView自動提示文本框?qū)嵗a
自動提示文本框(AutoCompleteTextView)可以加強用戶體驗,縮短用戶的輸入時間(百度的搜索框就是這個效果)。
先給大家展示下效果圖,如果大家感覺還不錯,請參考實現(xiàn)代碼:

最后一張獲取文本框里面的值(其實就跟TextView、EditText一樣):

首先,在xml中定義AutoCompleteTextView控件:
activity_main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" > <AutoCompleteTextView android:id="@+id/actv_game" android:layout_width="220dp" android:layout_height="wrap_content" android:completionHint="@string/game_" android:completionThreshold="1" android:hint="@string/game" /> <AutoCompleteTextView android:id="@+id/actv_car" android:layout_width="220dp" android:layout_height="wrap_content" android:completionHint="@string/car_" android:completionThreshold="1" android:hint="@string/car" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="10dp" android:onClick="getValue" android:text="@string/button" /> </LinearLayout>
屬性completionHint是提示數(shù)據(jù)時候顯示給用戶看的提示信息:
android:completionHint="@string/game_"
屬性completionThreshold是提示的起始位置,默認值為2,即輸入兩個字符之后開始檢索。一般設(shè)置為1:
android:completionThreshold="1"
這里有兩個AutoCompleteTextView,一個從xml中獲取提示數(shù)據(jù),另一個從集合中拿取提示數(shù)據(jù)。
Strings.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">actv_demo</string> <string name="action_settings">Settings</string> <string name="hello_world">Hello world!</string> <string name="game">游戲</string> <string name="car">車</string> <string name="game_">請選擇你喜歡的游戲</string> <string name="car_">請選擇你喜歡的車</string> <string name="button">獲取文本框的值</string> <string-array name="games"> <item>魔獸</item> <item>魔獸1</item> <item>魔獸2</item> <item>仙劍</item> <item>仙劍1</item> <item>仙劍2</item> <item>CS</item> <item>CS1</item> <item>CS2</item> <item>CF</item> <item>CF1</item> <item>CF2</item> <item>DNF</item> <item>DNF1</item> <item>DNF2</item> <item>傳奇</item> <item>傳奇1</item> <item>傳奇2</item> <item>天下</item> <item>天下1</item> <item>天下2</item> </string-array> </resources>
在String.xml中定義好games數(shù)組 。
MainActivity.java:
package com.yx.actv_demo.ui;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Toast;
import com.yx.actv_demo.R;
/**
*
* 此類描述的是: 主界面
*
* @author: CS YX
* @version:1.0
* @date:2014-10-24 下午3:47:38
*/
public class MainActivity extends Activity {
// 游戲文本框
private AutoCompleteTextView actv_game;
// 游戲文本框適配器
private ArrayAdapter<CharSequence> gameAdapter;
// 車
private AutoCompleteTextView actv_car;
private ArrayAdapter<String> carAdapter;
private List<String> cars;// 集合數(shù)據(jù)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();// 初始化控件
initData();// 初始化數(shù)據(jù)
// 實例化適配器 (從xml中拿取數(shù)據(jù))
gameAdapter = ArrayAdapter.createFromResource(MainActivity.this,
R.array.games, android.R.layout.simple_spinner_item);
// 綁定適配器顯示數(shù)據(jù)
actv_game.setAdapter(gameAdapter);
// 實例化適配器 從數(shù)組或集合中拿去數(shù)據(jù)
carAdapter = new ArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_spinner_item, cars);
// 綁定適配器顯示數(shù)據(jù)
actv_car.setAdapter(carAdapter);
}
/**
*
* 此方法描述的是: 獲取文本框的值
*
* @param view
* view對象
*/
public void getValue(View view) {
String game = "";
if (actv_game != null) {
game = actv_game.getText().toString();//獲取文本框的值
}
String car = "";
if (actv_car != null) {
car = actv_car.getText().toString();//獲取文本框的值
}
Toast.makeText(MainActivity.this, "喜歡的游戲是:" + game + " 喜歡的車是:" + car,
Toast.LENGTH_LONG).show();
}
/**
*
* 此方法描述的是: 初始化數(shù)據(jù)
*/
private void initData() {
cars = new ArrayList<String>();
for (int i = 0; i < 5; i++) {
cars.add("寶馬-" + i);
cars.add("奔馳-" + i);
cars.add("悍馬-" + i);
cars.add("路虎-" + i);
cars.add("吉普-" + i);
cars.add("奧迪-" + i);
cars.add("福特-" + i);
cars.add("英菲尼迪-" + i);
}
}
/**
*
* 此方法描述的是: 初始化控件
*/
private void initView() {
actv_game = (AutoCompleteTextView) findViewById(R.id.actv_game);
actv_car = (AutoCompleteTextView) findViewById(R.id.actv_car);
}
}
第一個ArrayAdapter實例:
ArrayAdapter.createFromResource(context, textArrayResId, textViewResId); context Context對象 textArrayResId 數(shù)據(jù)集合ID textViewResId Layout ID
第二個ArrayAdapter實例:
new ArrayAdapter<String>(context, resource, objects); context Context對象 resource Layout ID objects 數(shù)據(jù)集合
實例化ArrayAdapter之后,setAdapter即可!
actv_game.setAdapter(gameAdapter); actv_car.setAdapter(carAdapter);
以上所述是小編給大家介紹的Android AutoCompleteTextView自動提示文本框?qū)嵗a,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
- Android用戶輸入自動提示控件AutoCompleteTextView使用方法
- Android自動獲取輸入短信驗證碼庫AutoVerifyCode詳解
- Android AutoWrapTextView中英文排版問題的解決方法
- Android中使用 AutoCompleteTextView 實現(xiàn)手機號格式化附帶清空歷史的操作
- Android自動編輯文本框(AutoCompleteTextView)使用方法詳解
- Android中AutoCompleteTextView自動提示
- Android仿新浪微博oauth2.0授權(quán)界面實現(xiàn)代碼(2)
- android中AutoCompleteTextView的簡單用法(實現(xiàn)搜索歷史)
- Android仿百度谷歌搜索自動提示框AutoCompleteTextView簡單應用示例
- 關(guān)于Android HTML5 audio autoplay無效問題的解決方案
- Android App開發(fā)的自動化測試框架UI Automator使用教程
- Android中AutoCompleteTextView與TextWatcher結(jié)合小實例
- Android AutoValue使用和擴展庫
相關(guān)文章
Android進階CoordinatorLayout協(xié)調(diào)者布局實現(xiàn)吸頂效果
這篇文章主要為大家介紹了Android進階CoordinatorLayout協(xié)調(diào)者布局實現(xiàn)吸頂效果,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-01-01
Android?Flutter實現(xiàn)彈簧動畫交互的示例詳解
物理模擬可以讓應用程序的交互感覺逼真和互動,本文章實現(xiàn)了演示了如何使用彈簧模擬將小部件從拖動的點移回中心,感興趣的可以了解一下2023-04-04
Android調(diào)節(jié)屏幕亮度實現(xiàn)代碼
這篇文章主要介紹了Android調(diào)節(jié)屏幕亮度實現(xiàn)代碼,調(diào)節(jié)屏幕亮度時,先設(shè)置當前activity亮度,再并保存為系統(tǒng)亮度即可,本文分別給出兩個步驟的實現(xiàn)代碼,需要的朋友可以參考下2015-05-05
Android Studio 實現(xiàn)文檔注釋的快捷鍵
這篇文章主要介紹了Android Studio 實現(xiàn)文檔注釋的快捷鍵,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03

