Android使用AutoCompleteTextView实现自动填充功能的案例
作者:徐刘根 发布时间:2023-03-26 06:56:47
标签:android,autocompletetextview,控件,自动填充功能
(1)首先实现AutoCompleteTextView
功能所需要的适配器数据源共有两种方法,一种结果是手工配置的,另一汇总是通过xml文件制定的数据(当然也可以通过网上资源获得)
这里只讲前两种!
(2)布局的页面代码都一样如下:
<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="34dp"
android:text="所属城市:"
android:textSize="20dp" />
<AutoCompleteTextView
android:id="@+id/autoCompleteTextView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/textView1"
android:layout_toRightOf="@+id/textView1"
android:ems="10"
android:text="" >
<requestFocus />
</AutoCompleteTextView>
</RelativeLayout>
(3)第一种是通过手工配置的list数据源:
package com.example.autocompletetextview;
public class MainActivity extends Activity {
private AutoCompleteTextView autoCompleteTextView1;
private ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
autoCompleteTextView1 = (AutoCompleteTextView) this
.findViewById(R.id.autoCompleteTextView1);
/*
* 1.使用手工方式的list数组适配器
*/
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, getDataSource());
autoCompleteTextView1.setAdapter(adapter);
}
/*
* 1.手工设置一个list数组作为数据源
*/
public List<String> getDataSource() {
List<String> list = new ArrayList<String>();
list.add("beijing");
list.add("beida");
list.add("beiren");
list.add("shanghai");
list.add("shangzhou");
list.add("guangzhou");
list.add("dancheng");
list.add("ningping");
list.add("zhoukou");
list.add("chengdu");
list.add("heze");
list.add("zhumadian");
list.add("luoyang");
list.add("shuanglou");
list.add("yizhong");
list.add("xindu");
return list;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
(4)第二种是通过xml文件制定的数据源
name我们需要在/values/strings
文件下添加下边的配置
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">"AutoCompleteTextView "</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
<string-array name="countries_array">
<item>Afghanistan</item>
<item>Albania</item>
<item>Algeria</item>
<item>American Samoa</item>
<item>Andorra</item>
<item>Angola</item>
<item>Anguilla</item>
<item>Antarctica</item>
<item>Bfghanistan</item>
<item>Blbania</item>
<item>Blgeria</item>
<item>Bmerican Samoa</item>
<item>Bndorra</item>
<item>Bngola</item>
<item>Bnguilla</item>
<item>Bntarctica</item>
</string-array>
</resources>
然后的类为:
package com.example.autocompletetextview;
public class MainActivity extends Activity {
private AutoCompleteTextView autoCompleteTextView1;
private ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
autoCompleteTextView1 = (AutoCompleteTextView) this
.findViewById(R.id.autoCompleteTextView1);
/*
* 2.使用xml文件来配置适配器中的数据源
*/
String[] countries = getResources().getStringArray(R.array.countries_array);
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,countries);
autoCompleteTextView1.setAdapter(adapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
运行的结果如下所示:
来源:https://blog.csdn.net/xlgen157387/article/details/42063717


猜你喜欢
- Android性能优化-布局优化今天,继续Android性能优化 一 编码细节优化。编码细节,对于程序的运行效率也是有很多的影响的
- 前言一个说难不难,说简单竟看不出来是哪里问题的一个bug。是的 可能自己能力和经验尚浅无法识别,下面你们能否用火眼金睛一眼让bug原形毕露(
- QueryWrapper 添加limit其实是在sql的最后加上 limit 相关的语句。QueryWrapper wrapper = ne
- 1.让方法返回多个参数1.1在方法体外定义变量保存结果using System; using System.Collections
- 废话不多说,直接奉上代码:Frame.javapackage snake;import java.awt.Graphics;import j
- 基本数据类型变量就是用来储存值而保留的内存位置。这就意味着当你创建一个变量时就会在内存中占用一定的空间。基于变量的数据类型,操作系统会进行内
- 我在Eclipse/MyEclipse环境下都测试过了,都好使。需要2个组件,分别是: ext-4.0.2a.jsb2 spke
- 本文实例为大家分享了基于servlet实现统计网页访问次数的具体代码,供大家参考,具体内容如下一、基础知识(1)ServletContext
- JPanel是面板组件,非顶层容器,一个界面只有可以有一个JFrame窗体组件,但可以有多个Jpanel面板,而JPanel上也可以使用Fl
- Java命令运行jar 报错运行jar命令java -jar xxx.jar报错:Caused by: java.lang.ClassNot
- 前言在使用Java开发接口请求中,我们需要对请求进行进行统一返回值,这时候我们自己封装一个统一的Result返回类,下面就介绍下我用的这种的
- (1). 和反射+泛型有关的接口类型java.lang.reflect.Type:java语言中所有类型的公共父接口java.lang.re
- 简介之前在项目中遇到了一个新需求,领导让我使用本地缓存,来缓存数据库查出的用户信息,经过一番资料查阅和实验,最终确定了使用Caffeine来
- 在Spring中有一个类CachingUserDetailsService实现了UserDetailsService接口,该类使用静态代理模
- 目录MVC结构简介SpringMVC简介SpringMVC执行流程常用注解1. @Controller2. @ResponseBody3.
- 什么是 terms set 查询?Terms set 查询根据匹配给定字段的精确术语的最少数量返回文档。terms set 查询与 term
- 1. 准备工作首先我们创建一个 Spring Boot 工程,引入 Web 和 Redis 依赖,同时考虑到接口限流一般是通过注解来标记,而
- 实践过程效果代码public partial class Form1 : Form{ public Form1()
- 1、什么是Java反射机制?在程序运行中动态地获取类的相关属性,同时调用对象的方法和获取属性,这种机制被称之为Java反射机制下面给出一个反
- JLabel 对象可以显示文本、图像或同时显示二者。可以通过设置垂直和水平对齐方式,指定标签显示区中标签内容在何处对齐。默认情况下,标签在其