修改后成为这样→   

package com.kale.autocompletetextview;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map; import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.MultiAutoCompleteTextView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast; public class MainActivity extends Activity { AutoCompleteTextView acTv,sacTv;
MultiAutoCompleteTextView mcTv;
String []books = new String[] {
"android",
"java",
"xml",
"Ant"
}; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//创建一个adapter来封装数组
ArrayAdapter<String> aa = new ArrayAdapter<>(this,
android.R.layout.simple_dropdown_item_1line,books);
acTv = (AutoCompleteTextView)findViewById(R.id.auto_autoCompleteTv_id);
acTv.setAdapter(aa); mcTv = (MultiAutoCompleteTextView)findViewById(R.id.multi_autoCompleteTv_id);
mcTv.setAdapter(aa);
//为其设置分割符
mcTv.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); sacTv = (AutoCompleteTextView)findViewById(R.id.simple_autoCompleteTv_id); ArrayList<Map<String, String>> list = new ArrayList<Map<String,String>>();
addItems(list);
SimpleAdapter phone = new SimpleAdapter( this, list,
R.layout.item,
new String[] { "text", "name"},
new int[] { R.id.text_textView_id, R.id.name_textView_id } );
sacTv.setAdapter(phone);
sacTv.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View parent, int position,long id) {
TextView tv = (TextView)parent.findViewById(R.id.name_textView_id);
sacTv.setText(tv.getText().toString()+" ");
sacTv.setSelection((sacTv.getText().toString()).length());
}
}); } private void addItems(ArrayList<Map<String,String>> list) {
HashMap<String,String> item;
/*所有的搜索词语拼接成brandSearchText字段,用空格隔开。
比如:“诺基亚 NOKIA njy nuojiya”,把它作为搜索词,以便提高效率
但我们不想要把所有的相关词显示,我们只需要显示主要的那个,即:name的值。
text和name键对应的值都是候选项,但我们只显示的是name中的文字。*/ item = new HashMap<String,String>();
item.put( "text", "NOKIA nuojiya NJY");
item.put( "name", "诺基亚");
list.add( item ); item = new HashMap<String,String>();
item.put( "text", "SAMSUNG SX sanxing");
item.put( "name", "三星");
list.add( item ); item = new HashMap<String,String>();
item.put( "text", "摩托罗拉 moto MTLL motuoluola motoloar");
item.put( "name", "摩托罗拉");
list.add( item );
} }

xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="8dp"> <TextView
android:id="@+id/text_textView_id"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="Medium Text"
android:visibility="gone"
android:textAppearance="?android:attr/textAppearanceMedium" /> <TextView
android:id="@+id/name_textView_id"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:textColor="#0000ff"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium" /> </LinearLayout>

源码下载:http://download.csdn.net/detail/shark0017/7647965

SimpleAdapter和AutoCompleteTextView配合使用的更多相关文章

  1. Android UI系列-----EditText和AutoCompleteTextView

    在这篇随笔里将主要讲解一下EditText和AutoCompleteTextView这个控件 1.EditText 首先我们先简单来说说EditText这个控件,这个就相当于我们平常web开发中的文本 ...

  2. AutoCompleteTextView 简单用法 实现自定义list adapter

    网上有不少教程,那个提示框字符集都是事先写好的,例如用一个String[] 数组去包含了这些数据,但是,我们也可以吧用户输入的作为历史记录保存       下面先上我写的代码:import andro ...

  3. Android搜索自动提示功能 AutocompleteTextView

    1.配置main.xml中自动提示控件: <AutoCompleteTextView android:id="@+id/autotv_searchresult" androi ...

  4. Android AutoCompleteTextView控件实现类似百度搜索提示,限制输入数字长度

    Android AutoCompleteTextView 控件实现类似被搜索提示,效果如下 1.首先贴出布局代码 activity_main.xml: <?xml version="1 ...

  5. Android零基础入门第47节:自动完成文本框AutoCompleteTextView

    原文:Android零基础入门第47节:自动完成文本框AutoCompleteTextView 上一期学习的Spinner的使用,掌握的怎么样?本期一起来学习AutoCompleteTextView的 ...

  6. Android应用项目中BaseAdapter、SimpleAdapter和ArrayAdapter中的三种适配器

    一.写在前面: 本次我们来讲解一下Android应用中三个适配器:BaseAdapter.SimpleAdapter和ArrayAdapter.其中常见的是BaseAdapter,也是个人推荐使用的适 ...

  7. Android日记-SimpleAdapter和BaseAdapter

    SimpleAdapter 这是一个简单的适配器,可以将静态数据映射到XML文件中定义好的视图.你可以指定由Map组成的List(比如ArrayList)类型的数据.在ArrayList中的每个条目对 ...

  8. Android常用组件之AutoCompleteTextView

    安卓组件中,凡是需要配置数据的组件,一般都是用Adapter配置. AutoCompleteTextView的使用方法与ListView类似,也是用setAdapter来设置数据. MultiAuto ...

  9. Android:控件AutoCompleteTextView 自动提示

    在文本框中输入,要这样的提示效果,如果你输入的是aac,在输入aa后,选择aac,文本框的内容会自动补齐,输入aac(类似百度搜索文本框的显示结果)   <AutoCompleteTextVie ...

随机推荐

  1. sed正则表达式匹配,各种括号的转义和不转义

    https://blog.csdn.net/zl87758539/article/details/77481679

  2. PHP并发操作下的加锁

    最近做后台统计的工具,统计肯定是一个需要运算好久的数据 容许一个用户在一个时间内进行操作,这个时候就需要用到锁了,将这个操作过程锁起来.在用了cache的时候,cache失效可能导致瞬间的多数并发请求 ...

  3. UI 框架

    Vue.js 之 iView UI 框架 像我们平日里做惯了 Java 或者 .NET 这种后端程序员,对于前端的认识还常常停留在 jQuery 时代,包括其插件在需要时就引用一下,不需要就删除.故观 ...

  4. ClouderaManager配置报警邮件

  5. 【Java】 归并排序的非递归实现

    归并排序可以采用递归方法(见:归并排序),但递归方法会消耗深度位O(longn)的栈空间,使用归并排序时,应该尽量使用非递归方法.本文实现了java版的非递归归并排序. 更多:数据结构与算法合集 思路 ...

  6. Java之路(五) 访问权限控制

    在Java中,所有事物都具有某种形式的访问权限控制. 访问权限的控制等级从最大到最小依次为:public,protected,包访问权限(无关键词)和private. public,protected ...

  7. redis 持久化的两种方式

    一:快照模式 或许在用Redis之初的时候,就听说过redis有两种持久化模式,第一种是SNAPSHOTTING模式,还是一种是AOF模式,而且在实战场景下用的最多的 莫过于SNAPSHOTTING模 ...

  8. 005.MySQL双主-Master01可用配置

    [root@Master01 ~]# vim /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_de ...

  9. django 项目运行时static静态文件不能加载问题处理

    一.首先检查网页中的加载路径是否正确,如果和文件所在路径不一致,就把html改下路径 二.加载路径和文件实际路径一致,看下配置文件: STATIC_URL = '/static/'STATIC_ROO ...

  10. canvas入门级小游戏《开关灯》思路讲解

    游戏很简单,10行10列布局,每行每列各10盏灯,游戏初始化时随机点亮其中一些灯,点击某盏灯,其上下左右的灯及本身状态反转,如果点击前是灭着的,点击后即点亮,将所有灯全部点亮才算过关.游戏试玩: 下面 ...