Android使用AutoCompleteTextView实现自动填充功能的案例
作者:徐刘根 时间:2023-03-26 06:56:47
(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,autocompletetextview,控件,自动填充功能
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
c# 控件截图的简单实例
2022-01-21 16:43:19
Bean实例化之前修改BeanDefinition示例详解
2023-10-26 23:31:09
Android 设置颜色的方法总结
2023-12-14 16:41:57
设置JavaScript自动提示-Eclipse/MyEclipse
2022-06-15 12:41:05
![](https://img.aspxhome.com/file/2023/8/84628_0s.jpg)
java程序员如何编写更好的单元测试的7个技巧
2023-09-05 14:57:24
java通过PDF模板填写PDF表单
2022-05-28 16:37:48
![](https://img.aspxhome.com/file/2023/1/66651_0s.jpg)
Java上传视频实例代码
2023-06-24 04:17:45
JAVA中常见异常类
2021-11-09 09:47:20
浅谈C#指针问题
2022-07-19 17:06:00
Java 方法(方法的定义,可变参数,参数的传递问题,方法重载,方法签名)
2021-07-29 20:17:19
![](https://img.aspxhome.com/file/2023/0/67460_0s.png)
SSM框架+Plupload实现分块上传大文件示例
2023-06-01 01:58:21
![](https://img.aspxhome.com/file/2023/8/63048_0s.png)
基于spring-boot和docker-java实现对docker容器的动态管理和监控功能[附完整源码下载]
2022-02-04 00:41:18
![](https://img.aspxhome.com/file/2023/6/82446_0s.png)
SpringBoot多数据源配置详细教程(JdbcTemplate、mybatis)
2023-08-26 01:59:33
C# LINQ查询表达式及对应LAMBDA表达式的用法
2023-07-31 19:15:26
![](https://img.aspxhome.com/file/2023/7/77257_0s.png)
如何用java程序(JSch)运行远程linux主机上的shell脚本
2023-11-24 12:35:58
详解使用Docker搭建Java Web运行环境
2023-10-24 15:32:58
![](https://img.aspxhome.com/file/2023/7/80297_0s.png)
使用 Java8 实现观察者模式的方法(下)
2021-08-03 04:21:37
这一次搞懂Spring事务是如何传播的
2022-12-27 07:06:53
Java中类的加载顺序剖析(常用于面试题)
2022-07-26 16:10:48
![](https://img.aspxhome.com/file/2023/3/125603_0s.jpg)
Java Set集合的遍历及实现类的比较
2023-11-05 16:08:10