編輯:關於Android編程
自動提示文本框(AutoCompleteTextView)可以加強用戶體驗,縮短用戶的輸入時間(百度的搜索框就是這個效果)。
首先,在xml中定義AutoCompleteTextView控件:
屬性completionHint是提示數據時候顯示給用戶看的提示信息:
android:completionHint="@string/game_"
屬性completionThreshold是提示的起始位置,默認值為2,即輸入兩個字符之後開始檢索。一般設置為1:
android:completionThreshold="1"
這裡有兩個AutoCompleteTextView,一個從xml中獲取提示數據,另一個從集合中拿取提示數據。
actv_demo Settings Hello world! 游戲 車 請選擇你喜歡的游戲 請選擇你喜歡的車 獲取文本框的值 - 魔獸
- 魔獸1
- 魔獸2
- 仙劍
- 仙劍1
- 仙劍2
- CS
- CS1
- CS2
- CF
- CF1
- CF2
- DNF
- DNF1
- DNF2
- 傳奇
- 傳奇1
- 傳奇2
- 天下
- 天下1
- 天下2
在String.xml中定義好games數組 。
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 gameAdapter;
// 車
private AutoCompleteTextView actv_car;
private ArrayAdapter carAdapter;
private List cars;// 集合數據
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();// 初始化控件
initData();// 初始化數據
// 實例化適配器 (從xml中拿取數據)
gameAdapter = ArrayAdapter.createFromResource(MainActivity.this,
R.array.games, android.R.layout.simple_spinner_item);
// 綁定適配器顯示數據
actv_game.setAdapter(gameAdapter);
// 實例化適配器 從數組或集合中拿去數據
carAdapter = new ArrayAdapter(MainActivity.this,
android.R.layout.simple_spinner_item, cars);
// 綁定適配器顯示數據
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();
}
/**
*
* 此方法描述的是: 初始化數據
*/
private void initData() {
cars = new ArrayList();
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 數據集合ID textViewResId Layout ID
第二個ArrayAdapter實例:
new ArrayAdapter(context, resource, objects); context Context對象 resource Layout ID objects 數據集合
實例化ArrayAdapter之後,setAdapter即可!
actv_game.setAdapter(gameAdapter); actv_car.setAdapter(carAdapter);

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

Android Activity啟動模式之standard實例詳解
本文實例講述了Android Activity啟動模式之standard。分享給大家供大家參考,具體如下:Android的活動是通過任務Task來進行管理的,一個任務就是
Android-AndFix 熱修復框架原理及源碼解析
AndFix原理AndFix的原理就是通過c++指針進行方法的替換,把有bug的方法替換成補丁文件中的方法。方法替換過程:源碼解析解析源碼從使用的方法一一解析。在自定義A
Android種使用Notification實現通知管理以及自定義通知欄實例(示例四)
示例一:實現通知欄管理當針對相同類型的事件多次發出通知,作為開發者,應該避免使用全新的通知,這時就應該考慮更新之前通知欄的一些值來達到提醒用戶的目的。例如我們手機的短信系
Android N 之 重要的開發者功能
FrameMetricsListener APIAndroid N 仍處於活動的開發狀態,但現在您可以將其作為 N Developer Preview 的一部分進行試用。