文档章节

转:android中创建具有自动提示功能的菜

一别经年
 一别经年
发布于 2013/12/03 14:20
字数 544
阅读 74
收藏 5

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

通过Google上网搜索时,只要输入几个文字,就会显示相近的关键字让你挑选,而这种效果其实在Android中是非常容易达到的。事实上,Android的AutoCompleteTextView Widget,只要搭配ArrayAdapter就能设计出类似Google搜索提示的效果。

本范例先在Layout当中布局一个AutoCompleteTextView Widget,然后通过预先设置好的字符串数组,将此字符串数组放入ArrayAdapter,最后利用AutoCompleteTextView.setAdapter方法,就可以让AutoCompleteTextView Widget具有自动完成提示的功能。例如,只要输入ab,就会自动带出包含ab的所有字符串列表。

范例程序

src/irdc.ex04_13/EX04_13.java

本范例程序主要示范AutoCompleteTextView用法,再次使用到ArrayAdapter,只要是有下拉菜单的项目,都必须使用到ArrayAdapter对象。此外,将ArrayAdapter添加AutoComplete TextView对象中,所使用的方法为setAdapter,当中传输唯一的参数类型即为字符串类型的ArrayAdapter。

/* import程序略 */

public class EX04_13 extends Activity

{

private static final String[] autoStr = new String[]

{ "a", "abc", "abcd", "abcde" };

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

/*加载main.xml Layout */

setContentView(R.layout.main);

/* new ArrayAdapter对象并将autoStr字符串数组传入 */

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,

android.R.layout.simple_dropdown_item_1line, autoStr);

/* 以findViewById()取得AutoCompleteTextView对象 */

AutoCompleteTextView myAutoCompleteTextView =

(AutoCompleteTextView) findViewById(R.id.myAutoCompleteTextView);

/* 将ArrayAdapter添加AutoCompleteTextView对象中 */

myAutoCompleteTextView.setAdapter(adapter);

}

}

扩展学习

有个类似AutoCompleteTextView的对象,称为MultiAutoCompleteTextView,它继承了Auto CompleteTextView,差别在于它可以在输入框一直增加新的选择值,其编写方式也有些不同,一定要setTokenizer,否则会出现错误,以下范例是传入CommaTokenizer类,结果会将原本选择框里的值往后加逗号及空白。

package irdc.ex04_13;

import android.app.Activity;

import android.os.Bundle;

import android.widget.ArrayAdapter;

import android.widget.AutoCompleteTextView;

import android.widget.MultiAutoCompleteTextView;

public class EX04_13 extends Activity

{

private static final String[] autoStr = new String[]

{ "a", "abc", "abcd", "abcde" };

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

/*加载main.xml Layout */

setContentView(R.layout.main_1);

/* new ArrayAdapter对象并将autoStr字符串数组传入 */

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,

android.R.layout.simple_dropdown_item_1line, autoStr);

/* 以findViewById()取得MultiAutoCompleteTextView对象 */

MultiAutoCompleteTextView myAutoCompleteTextView =

(MultiAutoCompleteTextView)

findViewById(R.id.myAutoCompleteTextView);

/* 将ArrayAdapter添加AutoCompleteTextView对象中 */

myAutoCompleteTextView.setAdapter(adapter);

myAutoCompleteTextView.setTokenizer

(new MultiAutoCompleteTextView.CommaTokenizer());

}

}

本文转载自:http://blog.csdn.net/zeng622peng/article/details/6004317

一别经年
粉丝 17
博文 174
码字总数 60456
作品 0
西安
程序员
私信 提问
Google将专注于Android Studio,放弃Eclipse+ADT

上周Android的官方博客发表声明:Google将在年底结束对Eclipse+ADT的开发以及停止支持,把重心完全转移到Android Studio。对于很多使用Eclipse的Android开发者而言,他们必须接受一个全新的I...

yushulx
2015/07/07
984
0
Android Studio3.3 Navigation Editor(导航编辑器)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yiranhaiziqi/article/details/86593535 Android Studio3.3 Navigation Editor(导航编辑器)简单使用 AS 3.3...

ImportSUC
01/22
0
0
Android—JNI调用简单实例解析

转自:http://www.cnblogs.com/sevenyuan/p/4202759.html 感谢原作者的细心整理! 1. 在Eclipse中创建项目:TestJNI 2. 新创建一个class:TestJNI.java package com.wwj.jni; public class ......

80后小子
2015/11/12
7.1K
0
Android基础教程(八)之仿百度谷歌搜索自动提示框-----AutoCompleteTextView的应用

现在我们上网几乎都会用百度或者谷歌搜索信息,当我们在输入框里输入一两个字后,就会自动提示我们想要的信息,这种效果在Android 里是如何实现的呢? 事实上,Android 的AutoCompleteTextView Wi...

神勇小白鼠
2011/01/06
571
1
APP下载二维码微信扫一扫无法打开解决方案(一张二维码安卓苹果通吃)

微信扫一扫屏蔽了APP下载连接无非是想让大家将资源转移到自家平台,国人微信中毒过深,看到二维码首先想到的一定是微信(好强大的用户引导)。为了更好的用户体验,只能向腾讯屈服将应用转移...

dsg87
03/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

是否有内置功能可以打印对象的所有当前属性和值?

所以我在这里寻找的是类似PHP的print_r函数。 这样一来,我可以通过查看问题对象的状态来调试脚本。 #1楼 可能值得一看- 是否有与Perl的Data :: Dumper等效的Python? 我的建议是 https://gi...

技术盛宴
14分钟前
5
0
直击面试,聊聊 GC 机制

前言 文章来源:https://studyidea.cn/ GC 中文直译垃圾回收,是一种回收内存空间避免内存泄漏的机制。当 JVM 内存紧张,通过执行 GC 有效回收内存,转而分配给新对象从而实现内存的再利用。 ...

程序通事
16分钟前
4
0
Mybatis where 1=1 和 标签

在mybatis中拼接查询语句,偶尔会出现where后面可能一个字段的值都没有,就导致所有条件无效,导致where没有存在的意义;但也有可能这些条件会存在。那解决这个问题的方法,最常见的就是: ...

观海562
19分钟前
4
0
git常用初始化设置

日志编辑工具 git config --global core.editor vim ssh访问 cd /home/weiguangyue/.sshssh-keygen -t rsa -C weiyue888999@126.com 提交者信息用户名 git config --global user.nam......

萧默
20分钟前
4
0
面试题-关于Java线程池一篇文章就够了

在Java面试中,线程池相关知识,虽不能说是必问提,但出现的频次也是非常高的。同时又鉴于公众号“程序新视界”的读者后台留言让写一篇关于Java线程池的文章,于是就有本篇内容,本篇将基于J...

程序新视界
23分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部