android--Spinne下拉列表视图r、ArrayAdapter数组适配器、SimpleAdapte简单适配器r、AutoCompleteTextView自动提示完成文本框
在学习这些之前呢,我们先来了解一下关于Spinner、ArrayAdapter、SimpleAdapter、AutoCompleteTextView的作用:
Spinner :下拉列表视图 ,他的父类是AbSpinner->AdapterView
ArrayAdapter:数组适配器,可以结合Spinner使用,而且数据源只能是文本集合
AdapterView:适配器视图,即Adapter控件,内容通常是一个包含多项相同格式资源的列表,每次只能显示其中一项哦!
SimpleAdapter:简单适配器,如果想让Spinner,listView等组件中每一条显示的数据类型和个数不止一个,就需要用到SimpleAdapter适配器来适应数据
AutoCompleteTextVier:自动提示完成文本框:他的父类是:EditText。
下面呢,我们来具体讲解一下:
一:Spinner:下拉列表视图
1.使用方法:
<Spinnerandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/sp">
</Spinner>
下拉菜单一共有两种展示模式:
dropdown:纵向展示
dialog:横向展示
注意!视图列表Spinner的数据源是数组或者集合,具体怎么使用,不要着急,往下看哦
二:ArrayAdapter:数组适配器
1.一共有6种构造方法
1.1三个参数的构造方法;
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.simple_spinner_drowdown_inem,list);
参数一:上下文对象
参数二:条目布局id,该布局中只能含有一个TextView
参数三:数据源List<String> list
1.2两个参数的构造方法:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.simple_spinner_drowdown_inem);
参数一:上下文对象
参数二:条目布局id,该布局中只能含有一个TextView
当用了两个参数的时候,adapet没有数据源,所以需要调用:adapet.add(list),添加数据源
使用适配列表视图设置适配器:spinner.setAdapter(adapter);
2.父类是:BaseAdapter
3.数据源只能是文本集合
4.注意:item条目局部只能是TextViev!
三:ArrayAdapter的方法:
1.添加数据:
单个数据对象:adapter.add("对象");
添加String集合:adapter.addAll(list);
2.移除数据:
adapter.remove("对象");
3.刷新数据:
adapter.notifyDataSetChanged();
spinner的监听器:
sp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {@Overridepublic void onItemSelected(AdapterView<?> parent, View view, int position, long id) {//当选择的时候执行该方法@Overridepublic void onNothingSelected(AdapterView<?> parent) {//什么都没选}
});
SimpleAdapter:简单适配器
如果想让Spinner,ListView等组件中每一条显示的数据类型和个数不止一个,就需要用到SimpleAdapter适配器来适配数据了。
SimpleAdapter的数据源必须是:List<Map<String,Object>> list;而且必须自定义条目布局
模拟器模拟数据源:
private ArrayList<Map<String,Object>> arrayList = new ArrayList<>();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.myactivity_layout);autoCompleteTextView = findViewById(R.id.tctv);sp = findViewById(R.id.sp);for (int i = 0; i < 10; i++) {HashMap<String,Object> hashMap = new HashMap<>();hashMap.put("name","haha"+i);hashMap.put("age",i+"");hashMap.put("pic",R.mipmap.ic_launcher);hashMap.put("inMan",true);arrayList.add(hashMap);}String[] keys = {"name","age","pic","isMan"};int[] ids = {R.id.name,R.id.age,R.id.pic,R.id.isMan};SimpleAdapter simpleAdapter = new SimpleAdapter(this,arrayList,R.layout.item_layout,keys,ids);sp.setAdapter(simpleAdapter);
自定义条目布局:
先创建一个Layout 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="match_parent"android:textSize="24sp"android:textStyle="italic"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/name"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/age"/><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/pic"/><CheckBoxandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/isMan"/>
</LinearLayout>
SimpleAdapter的构造:5个参数
1.上下文对象
2.数据源
3.item布局条目的id
4.数据源Map中Key的集合数组
5.item布局中所有视图id的集合数组,要与第四条一一对应
String[] keys = {"name","age","pic","isMan"};int[] ids = {R.id.name,R.id.age,R.id.pic,R.id.isMan};
适配器 : SimpleAdapter simpleAdapter = new SimpleAdapter(this,arrayList,R.layout.item_layout,keys,ids);sp.setAdapter(simpleAdapter);
四:AutoCompleteTextView:自动提示完成文本框
父类:EditText
属性:
android:completionHint 设置出现在下拉提示列表 底部的提示信息
android:completionThreshold 即用户至少输入多少个字符才会显示提示
android:dropDownHorizontalOffset设置下拉菜单于文本框之间的水平偏移。下拉菜单默认与文本框左对齐
android:dropDownVerticalOffset设置下拉菜单于文本框之间的垂直偏移。下拉菜单默认紧跟文本框
android:dropDownHeight 设置下拉菜单的高度
android:dropDownWidth 设置下拉菜单的宽度
使用方法:和Spinner一样的使用方法,配个ArrayAdapter适配器
效果:输入开头,会根据数据源提示
例如:
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,R.layout.,arraylist);
autoCompleteTextView.setAdapter(arrayAdapter);
好啦,我们就说到这里哦!
android--Spinne下拉列表视图r、ArrayAdapter数组适配器、SimpleAdapte简单适配器r、AutoCompleteTextView自动提示完成文本框相关推荐
- android文本框自动补全,[Android]AutoCompleteTextView自动补全文本框
当我们在做项目的时候,往往有着这样的需求:(1)在登陆的时候,在输入的账号的过程中弹出补全账号的提示(2)在搜索的时候,在输入搜索词的过程中弹出补全搜索词的提示,就像: 而这时,AutoComplet ...
- Android AutoCompleteTextView自动提示文本框
效果 使用方法: 在布局文件中: <AutoCompleteTextViewandroid:id="@+id/autotextview"android:completionT ...
- Android的高级控件(自动提示文本框与下拉列表)
一.高级控件与常用控件的区别:是否使用适配器 二.适配器 1.种类 ①.数组适配器 ArrayAdapter new ArrayAdapter<String>(this,R.l ...
- android autocompletetextview 自定义,AutoCompleteTextView 自定义提示样式
项目中用到AutoCompleteTextView 自动提示功能,如果用自带的ArrayAdapter就一种样式,非常丑,而且每一项提示文字过多的话不会自动换行. 所以自己自定义了一个适配器. 效果 ...
- android实现文本输入,Android实现智能提示的文本输入框AutoCompleteTextView
今天我们要讲一个十分简单的内容,就是一个安卓控件的使用,用法很简单,但是很常用的一个.这里我用两种不同的写法来处理.当然,无论用哪一种写法,效果都是一样的. 我们先来看效果图. 要实现这种效果十分简单 ...
- Android学习笔记 2.5.3 实例——使用SimpleAdapter创建ListView 2.5.4 自动完成文本框(AutoCompleteTextView)的功能与用法
Android学习笔记 疯狂Android讲义 文章目录 Android学习笔记 疯狂Android讲义 第2章 Android 应用的界面编程 2.5 第4组 UI组件:AdapterView及其子 ...
- android 自动补全方法,Android零基础入门|自动完成文本框AutoCompleteTextView
原标题:Android零基础入门|自动完成文本框AutoCompleteTextView 上一期学习的Spinner的使用,掌握的怎么样?本期一起来学习AutoCompleteTextView的使用. ...
- Android中Spinner下拉列表(使用ArrayAdapter和自定义Adapter实现)
Android中Spinner下拉列表(使用ArrayAdapter和自定义Adapter实现)
- Android页面下拉列表的简单页面
首先打开安卓的ADT软件 创建一个项目,取名为Day08 我们今天创建这样的一个Android页面 视图分析:该图是由6个线性布局<LinearLayout>(如下图六个红线框框),文本框 ...
最新文章
- 一次失败的尝试:paxosstore示例编译
- 杨百万建议股民可以从以下几个方面进行
- 安装memory analyzer
- 双目摄像头 三维坐标 python_时间编码单像素三维成像:挑战三维成像的速度极限...
- 条款七 为多态基类声明virtual析构函数
- Windows 10如何消除文件夹右上角的“相对箭头”?
- 【洛谷P4315】月下“毛景树”(树链剖分)
- WinAPI: SetTextJustification - 设置两端对齐
- Python文本数据及其可视化
- 相控阵天线面阵方向图(FFT变换)
- C/C++中绝对值函数
- 今日卢布美元汇率换算
- uniapp 连接ibeacon beacon
- preempt_disable导致的cyclictest测试延时超标
- win7打开任务管理器的快捷键
- 机器学习基础---pr曲线的绘制
- led手电筒烧灯珠_浅谈务优LED手电筒灯珠型号与区别技巧
- 嵌入式系统与通用计算机操作系统的区别
- 深入理解vue中的slot与slot-scope (简单易懂)
- 【渝粤教育】电大中专电大中专职业生涯规划考试考核试题作业 题库