SimpleAdapter和AutoCompleteTextView配合使用

 修改后成为这样→   

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.youkuaiyun.com/detail/shark0017/7647965

AutoCompleteTextView和adapter的使用 AutoCompleteTextView和adapter的使用,里面用了arrayAdapter和simpleAdapter 立即下载

相关推荐

Qt实战:用QTreeView+QStandardItemModel实现多级多列文件浏览器(附完整代码)

本文深入探讨了使用Qt的QTreeView与QStandardItemModel构建多级多列文件浏览器的完整实践。通过分析模型/视图框架的优势,详细演示了从基础框架搭建、模拟数据填充,到对接真实文件系统实现懒加载的全过程。文章还涵盖了自定义委托、多列排序、右键菜单等高级定制技巧,并提供了性能优化建议和完整的代码示例,帮助开发者打造功能强大且高效的工业级文件管理界面。

weixin_29021291的博客 424

AutoCompleteTextView针对SimpleAdapter 源码改动的适配器

主要功能是提示的内容不是以输入的内容开头的,因为AutoCompleteTextView基本用法都是输入什么就提示以输入内容开头的内容。 package com.example.xujiingqing;import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map

xujingqing的博客 529

Oracle入门——基础语法篇

ROWID是Oracle中的一个伪列,用于唯一标识数据库中的每一行。在查询中,可以使用ROWID来定位和操作特定的行,例如,删除特定的行或更新特定的行。在Oracle中,子查询是指嵌套在另一个查询内部的查询语句,它可以作为主查询的一部分,用于提供额外的过滤条件、计算或数据源。在Oracle中,连接查询是通过使用JOIN子句将两个或多个表中的数据合并在一起,以获取满足特定条件的结果集。在Oracle数据库中,ROWID和ROWNUM都是用于对行进行标识和定位的伪列,它们在查询中的使用有一些不同之处。

麦当当的博客 3089

用AutoCompleteTextView实现历史记录提示

这画面不陌生吧,百度的提示,他的词库并不是历史记录,是搜索引擎收集的当前最常搜索的内容。假如我们也要在android的应用实现如上功能怎么做呢? 方法很简单,android已经帮我们写好了api ,这里就用到了AutoCompleteTextView组件。        网上有不少教程,那个提示框字符集都是事先写好的,例如用一个String[] 数组去包含了这些数据,但是,我们也可以吧用户输入

iamkila的专栏 5万+

JPA - @MappedSuperclass - 基类注解

目录前言代码示例 前言 @MappedSuperclass注解一般作为基类的注解,表眀该类是映射的超类,继承于它的子类实体在映射时会自动添加到子类实体的对应数据库表中,用于共同的属性代码复用和模型分离。 代码示例 BaseEntity.java import lombok.Getter; import lombok.Setter; import javax.persistence.MappedSuperclass; import java.util.Date; @Getter @Setter @Ma

Maggieq8324的博客 2065

窥秘Windows 10:SAM密码破解

Windows 10作为广受欢迎的操作系统,拥有一套强大的安全措施来保护用户账号和数据安全。然而,有时候我们需要了解更多关于密码破解的知识,以加强我们的防护措施。本文将深入探讨如何突破Windows 10的SAM密码,以便更好地了解密码安全性并加强系统的保护。

Sgirll的博客 6844

Android第九天Spinner、ArrayAdapter、SimpleAdapter、AutoCompleteTextView

一. AdapterView(适配器视图,实际上就是一系列 列表类UI组件) ①.AdapterView即Adapter控件,其内容通常是一个包含多项相同格式资源的列表,每次只显示其中的一项。 ②.常用的AdapterView: 包括:ListVew(列表)、Spinner(下拉列表)、GridView(网格图) 适配器:从数据源到UI组件(特指适配器视图AdapterVi

b892686007的博客 753

知识图谱实战应用8-从文本关系抽取到知识图谱关系构建流程贯通

大家好,我是微学AI,今天给大家介绍一下知识图谱实战应用8-从文本关系抽取到知识图谱关系构建流程贯通。我们从文本数据中采集到关键信息,并抽取出其中的关系信息,然后在存入图数据库中,整个过程实现自动化,我这里将举一个文本例子进行抽取。 对于知识图谱的构建是将实体、概念和它们之间的关系都以图表形式呈现出来的一种数据结构。要构建一个知识图谱,需要从不同的数据源中采集到相关信息,并将这些信息整合在一起,最终形成一个全面而且精确的知识图谱。

微学AI的博客 2545

Android学习笔记 2.5.3 实例——使用SimpleAdapter创建ListView && 2.5.4 自动完成文本框(AutoCompleteTextView)的功能与用法

Android学习笔记 2.5.3 实例——使用SimpleAdapter创建ListView && 2.5.4 自动完成文本框(AutoCompleteTextView)的功能与用法

代码改变世界 848

【项目实战】YOLOV5 +实时吸烟目标检测+手把手教学+开源全部

本原创项目长期更新,旨在完成校园异常行为实时精检测,做到集成+N次开发+优化(不止局限于调包)为止,近期将不断更新以下模型+数据+标注文件+教程。关注博主,Star 一下github,一起开始美妙的目标检测之路吧~~ 文章目录本原创项目长期更新,旨在完成校园异常行为实时精检测,做到集成+N次开发+优化(不止局限于调包)为止,近期将不断更新以下模型+数据+标注文件+教程。关注博主,Star 一下github,一起开始美妙的目标检测之路吧~~一、项目展示二、项目资源共享1:训练图片:香烟图片+吸烟手势+烟雾三、

cv君的博客 13万+

基于Cesium实现,动态水面+大坝排水动画

一、绘制面状水域,使用水波纹理,进行渲染,水体透明,可以看到底色。三、使用粒子系统,将喷泉改变方向,加上重力设置,实现排水动画。二、绘制线状三维体,用作模拟大坝拦截效果。四、最后,模拟水位上升,进行淹没分析,

一醉千秋的专栏 1420

Android SimpleAdapter简单适配器

SimpleAdapter 的数据源必须是List&lt;Map&lt;String,Object&gt;&gt; list; 必须自定义条目布局simpleAdapter的五个参数:1.参数一:上下文对象2.参数二:数据源3.参数三:item布局条目的id4.参数四:数据源Map中key的集合数组5.参数五:item布局中所有视图id 的集...

LIXIAONA_1101的博客 616

RK3568平台(USB篇)USB基础知识

现象:把USB设备比如Android手机接到PC答1:是USB控制器,是USB控制器内嵌的root hub.答2. windows里已经有了USB的总线驱动程序,接入USB设备后,是"总线驱动程序"知道你是"android phone"提示你安装的是"设备驱动程序"。USB总线驱动程序负责:识别USB设备, 给USB设备找到对应的驱动程序。答3. PC的USB口内部,D-和D+接有15K的下拉电阻,未接USB设备时为低电平USB设备的USB口内部,D-或D+接有1.5K的上拉电阻;

weixin_49303682的博客 1658

Android 开发基础(三):适配器、提示信息、对话框

(个人经验,仅供参考,错误之处,敬请谅解) 适配器(Adapter) 在使用Spinner控件时,可以用entries属性设置下拉列表的值,也可以使用适配器。 android:entries="@array/view_spinner_values" 而在使用AutoCompleteTextView 控件时则必须要用到适配器来搭配使用: 提示信息(Toast) 对话框(AlertDialog) ...

WihauShe's Blogger 269

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Android学习笔记⑦——UI组件的学习AdapterView相关1

AdapterView是一个非常重要的组件之一,他非常灵活,所以得好好学。。。AdapterView本身是一个抽象类,派生出来的子类用法也十分相似,只是界面有一定的区别,因此本节把他们归为一类 AdapterView的特性有:AdapterView 继承了ViewGroup,即它的本质是一个容器 、AdapterView可以包括多个列表项,并且将他们合适的显示、AdapterView与适配器Ad...

weixin_33744854的博客 141

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

安卓基础学习

TextView在xml布局文件中,设置字符android:autoLink="all/phone/Email/web/none"可以用来区分文字中的号码、超链接等 intent或者intent与bundle组合传递数据 intent.putExtra(mag,value) getIntent().intent.getStringExtra(msg,defaultvalue) 法二: bundle...

qq_42811161的博客 557

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

AdapterView,ArrayAdapter、SimpleAdapter、AutoCompleteTextView

一、AdapterView 1.AdapterView即 Adapter 控件,其内容通常是一个包含多项相同格式资源的列表,每次只显示其中的一项。 2.常用的AdapterView 包括ListView(列表)、Spinner(下拉列表)、GridView(网格图) 适配器:从数据源到UI组件(特指适配器视图AdapterView)的中介,负责把数据源填充到UI组件中,以便显示给用户。 ...

Rose_gz的博客 319

第十五讲-----SimpleAdapter 封装复杂数据,ListActivity 类,ListView 事件,自动文本提示组件 AutoCompleteTextView

一、SimpleAdapter----封装复杂数据

kangtingting01的专栏 977

Hybrid App 移动端踩坑录:键盘、视口与阿拉伯语

Hybrid App 中软键盘遮挡问题根源在于布局视口与视觉视口不一致。针对输入框被盖,自研 KeyboardObserver 通过轮询 visualViewport.height、innerHeight、scrollY 及 getBoundingClientRect() 四个信号交叉验证键盘状态,结合 iOS 延迟滚动、Android 快速响应的分策略,实现精准定位。针对底部按钮被盖,用 CSS 变量 --pageHeight 动态绑定 window.innerHeight,替代 100vh,并配合 ca

山雀的博客 193

成为全栈·基础补充·Nginx 入门:反向代理与静态托管

Nginx 可以托管前端静态文件,也可以作为反向代理把 HTTPS 请求转给内部 API。本文从请求路径讲起,解释反向代理、静态目录、代理头、路径拼接、可信 IP、Cookie、上传体积、超时和缓存边界,并提供配置结构示例和逐层排查顺序。配置片段需要结合实际证书、路由和运行平台验证,不能直接复制为生产方案。

FungLeo's Blog 298

Android Visualizer 实战:把声音画出来

是系统提供的音频效果(AudioEffect)之一。它挂在音频链路上,,把数据回吐给你——画波形、画频谱、做响度表。

Android的专栏 273

Android 开发入门实践(十三):用 Intent、UiState 和 Reducer 理解 MVI 的状态更新

本文记录第141—145课对MVI架构的入门实践,通过“返回列表”功能逐步构建意图(NewsIntent)、状态(NewsUiState)与状态转换(reduce)机制。基于单向数据流,用户操作生成意图,ViewModel通过Reducer根据旧状态计算新状态,并通过StateFlow更新Compose界面。代码实现清晰分离关注点,强化了对状态管理、事件驱动与数据流的理解。

Easyhood的博客 328

Android Span 使用详解【全面】

本文系统讲解Android富文本核心机制Span,涵盖三大容器(SpannedString、SpannableString、SpannableStringBuilder)与核心API,分类解析字符级、段落级及交互类Span,结合实战示例展示关键词高亮、可点击文本、图文混排等应用,并提供自定义Span(如圆角标签、渐变文字)方法。重点剖析性能优化与四大常见坑:段落Span失效、点击无反应、flags误用、ellipsize冲突,强调合理选择容器、正确设置flags与movementMethod,确保富文本高效

indeedes的博客 266
上一篇: javascript
下一篇: cocostudio学习(UIScrollView控件内部子控件的可视化问题)
weixin_34113237
博客等级 码龄11年 5225粉丝 156原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值