Android AutoCompleteTextView自动提示文本框实例代码

自动提示文本框(AutoCompleteTextView)可以加强用户体验,缩短用户的输入时间(百度的搜索框就是这个效果)。

先给大家展示下效果图,如果大家感觉还不错,请参考实现代码:

最后一张获取文本框里面的值(其实就跟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是提示数据时候显示给用户看的提示信息:

android:completionHint="@string/game_"

属性completionThreshold是提示的起始位置,默认值为2,即输入两个字符之后开始检索。一般设置为1:

android:completionThreshold="1"

这里有两个AutoCompleteTextView,一个从xml中获取提示数据,另一个从集合中拿取提示数据。

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数组 。

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;// 集合数据
@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<String>(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<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 数据集合ID
textViewResId Layout ID

第二个ArrayAdapter实例:

new ArrayAdapter<String>(context, resource, objects);
context Context对象
resource Layout ID
objects 数据集合

实例化ArrayAdapter之后,setAdapter即可!

actv_game.setAdapter(gameAdapter);
actv_car.setAdapter(carAdapter);

以上所述是小编给大家介绍的Android AutoCompleteTextView自动提示文本框实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • Android实现自动文本框提示功能

    本文实例为大家分享了Android实现自动文本框提示的具体代码,供大家参考,具体内容如下 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" a

  • Android自动文本框输入识别提示功能代码

    自动提示文本框(AutoCompleteTextView)可以加强用户体验,缩短用户的输入时间(百度的搜索框就是这个效果). 相信大家都熟悉自动识别提示吧,在我们的生活中随处可见,今天就让我为大家简单介绍一下它是如何设计的. 所谓自动识别输入即是根据用户输入的已有信息,为用户提示可能的值,方便用户完成输入.在Android设备上这种功能分为:AutoCompleteTextView和MultiAutoCompleteTextView,前者为单个的自动识别,类似与搜索引擎的输入框提示:后者为多个值

  • Android AutoCompleteTextView自动提示文本框实例代码

    自动提示文本框(AutoCompleteTextView)可以加强用户体验,缩短用户的输入时间(百度的搜索框就是这个效果). 先给大家展示下效果图,如果大家感觉还不错,请参考实现代码: 最后一张获取文本框里面的值(其实就跟TextView.EditText一样): 首先,在xml中定义AutoCompleteTextView控件: activity_main.xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/r

  • Android高级组件AutoCompleteTextView自动完成文本框使用详解

    自动完成文本框(AutoCompleteTextView),用于实现允许用户输入一定字符后,显示一个下拉菜单,供用户从中选择,当用户选择某个选项之后,按用户选择自动填写该文本框. 语法格式: <AutoCompleteTextView 属性列表> </AutoCompleteTextView> AutoCompleteTextView组件继承EditText,所以它支持EditText组件提供的属性,同时,该组件还有以下属性: android:completionHint 下拉列表

  • 简单JS自动提示文本框代码

    本例以颜色为例,为用户提供自动提示,展示效果和运行结果如图: 1.建立框架结构: 复制代码 代码如下: <body> <form method="post" name="myForm1"> Color: <input type="text" name="colors" id="colors" onkeyup="findColors();" /> <

  • Android 自动完成文本框的实例

    Android:自动完成文本框 xml文件代码如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_pare

  • Android自动编辑文本框(AutoCompleteTextView)使用方法详解

    自动编辑文本框(AutoCompleteTextView)继承自EditText,能够接受用户的输入编辑,但是有这自己的特色功能:输入一定的字符以后会弹出下拉列表提示供用户选择,用户选择之后会自动填充文本框.这项功能正如浏览器的输入提示: 由于自动编辑文本框继承于EditText,它能够支持EditText的全部属性,但是在输入提示方面它有着自己的独特属性: android:completionHint     为弹出下拉菜单指定提示标题 android:completionThreshold 

  • Android开发高级组件之自动完成文本框(AutoCompleteTextView)用法示例【附源码下载】

    本文实例讲述了Android开发高级组件之自动完成文本框(AutoCompleteTextView)用法.分享给大家供大家参考,具体如下: 通常来说自动完成文本框(AutoCompleteTextView)从EditText派生而出,实际上他也是一个编辑框,但他比普通的编辑框多了一个功能:当用户输入一定字符后,自动完成文本框会显示一个下拉菜单,供用户从中选择,当用户选择了某个菜单项过后,AutoCompleteTextView就会按用户选择自动填写该文本框. 自动完成文本框(AutoComple

  • Android中AutoCompleteTextView自动提示

    我们使用控件AutoCompleteTextView 自动提示时,有时需要设置BaseAdapter,设置BaseAdapter时,需要实现Filterable,手动进行筛选. 常用属性 布局只设置了至少输入一个字符显示提示 <AutoCompleteTextView android:id="@+id/at" android:completionThreshold="1" android:layout_width="match_parent"

  • 基于jQuery实现弹出可关闭遮罩提示框实例代码

    jquery CSS3遮罩弹出层动画效果,使用非常简单,就两个标签,里面自定义内容和样式,四种常见效果,懂的朋友还可以修改源代码修改成自己想要的效果 先给大家展示下效果图,如果大家感觉还不错,请参考实现代码. 效果演示 关键代码如下所示: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8&quo

  • javascript自动恢复文本框点击清除后的默认文本

    本文实例介绍了点击文本框清除默认文本离开再恢复的js实例代码,分享给大家供大家参考,具体内容如下 相关知识: 1.onclick事件的定义和用法: 当点击对象的时候会触发此事件. 浏览器支持: 1).IE浏览器支持此事件. 2).火狐浏览器支持此事件. 3).Opera浏览器支持此事件. 4).谷歌浏览器支持此事件. 5).safria浏览器支持此事件. 实例代码: <html> <head> <meta charset="gb2312"/> <

  • 关于Android高德地图的简单开发实例代码(DEMO)

    废话不多说了,直接给大家上干货了. 以下为初次接触时 ,练手的DEMO import android.app.Activity; import android.app.ProgressDialog; import android.content.ContentValues; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatab

随机推荐