前言:

ArrayAdapter:支持泛型操作,最简单的一个Adapter,只能展现一行文字~,我的学习就是通过这个最简单的适配器开始

正文:

完成这个ArrayAdapter需要三步:1.初始化数据,2.初始化Adapter,3.初始化AdapterView下面通过代码来演示

xml文件

 <ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/listview">
</ListView>

Java中文件

 package com.example.administrator.testadapter;

 import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView; import java.util.ArrayList;
import java.util.List; public class MainActivity extends AppCompatActivity {
private ListView listview;
private List<String> list;
private ArrayAdapter<String>adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化适配器View
listview=(ListView)findViewById(R.id.listview);
//初始化数据源
list =new ArrayList<String>();
for(int i=0;i<=20;i++){
list.add("数据"+i);
}
//初始化适配器
adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,list);
//把适配器设置到适配器View
listview.setAdapter(adapter);
}
}

效果图:

补充:

数据源除了集合外还可以有数组,另外也可以写到一个数组资源文件中:比如:在res\valuse下创建一个数组资源的xml文件:arrays.xml

 <?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="myarray">
<item>提莫</item>
<item>奥巴马</item>
<item>盖伦</item>
</string-array>
</resources>

27行代码中,第二个参数(android.R.layout.simple_list_item_1)是系统提供的一个模板,统给我们提供好的一些ListView模板,有下面几种:

simple_list_item_1 : 单独一行的文本框

simple_list_item_2 : 两个文本框组成

simple_list_item_checked : 每项都是由一个已选中的列表项

simple_list_item_multiple_choice : 都带有一个复选框

simple_list_item_single_choice : 都带有一个单选钮  

另外自己写的布局文件也是可以,代码如下:

 <?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="显示内容"
android:textSize="20sp"
android:padding="8dp"
/>

这样会让单行文字居中显示

下面给ListView添加监听器

点击事件

  listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(MainActivity.this, "你点击的item是第" + position + "个", Toast.LENGTH_SHORT).show();
}
});

功能就是在你点击ListView时会Toast一下

其中onItemClick方法中的参数:

parent:适配器设置到adapterView对象,这里表示ListView

view:适配器item对应的view

position:缩影位置

id:在ListView中的item的行id

长按点击事件

 listview.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
list.remove(position);
adapter.notifyDataSetChanged();
return true;
}
});

如果返回值为true的话这个点击事件会被长点击独占,否则相反。

Adapter之ArrayAdapter以及监听器设置的更多相关文章

  1. Android_适配器(adapter)之ArrayAdapter

    ArrayAdapter是一个很简单的适配器,是BaseAdapter的子类. ArrayAdapter绑定的数据是集合或数组,比较单一.视图是列表形式,ListView 或 Spinner. Arr ...

  2. Android ListView中按钮监听器设置的解决方案

    在做安卓应用开发的时候很经常会用到ListView,并且每一个Item里面都会有按钮之类的需要进行事件监听的控件.在给按钮添加OnClickListener的时候,一开始很下意识的会想在ListVie ...

  3. ListView中button监听器 设置 及 优化

    在应用开发中常常会用到ListView,而且每个Item里面都会有button之类的须要进行事件监听的控件.在给button加入OnClickListener的时候,一開始非常下意识的会想在ListV ...

  4. SqlDevlepor注册表监听器设置

      1.打开plsqldev.   2. 键入环境变量 NLS_LANG SIMPLIFIED CHINESE_CHINA.ZHS16GBK   3.下载sqldevclient. http://pa ...

  5. ListView系列(七)——Adapter内的onItemClick监听器四个arg参数 (转)

    举个例子你会理解的更快:X, Y两个listview,X里有1,2,3,4这4个item,Y里有a,b,c,d这4个item.如果你点了b这个item.如下: public void onItemCl ...

  6. 使用具体解释及源代码解析Android中的Adapter、BaseAdapter、ArrayAdapter、SimpleAdapter和SimpleCursorAdapter

    Adapter相当于一个数据源,能够给AdapterView提供数据.并依据数据创建相应的UI.能够通过调用AdapterView的setAdapter方法使得AdapterView将Adapter作 ...

  7. adapter用法

    Android之Adapter用法总结 1.概念 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带.在常见的View(ListView,GridView) ...

  8. 转载《Android Adapter简单总结》

    1.概念 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带.在常见的View(List View,Grid View)等地方都需要用到Adapter.如下 ...

  9. adapter(转自Devin Zhang)

    1.概念 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带.在常见的View(ListView,GridView)等地方都需要用到Adapter.如下图直 ...

随机推荐

  1. java代理模式的实现方法

    package com.sample.sping_ireport.cglib; import java.lang.reflect.InvocationHandler; import java.lang ...

  2. Servlet 设置字符编码filter

    filter package common; import javax.servlet.*; import java.io.IOException; public class EncodingFilt ...

  3. AJAX请求返回JSON数据动态生成html

    1:DeliveryPersonVO对象 package com.funcanteen.business.entity.delivery.vo; import java.util.List; impo ...

  4. Controller 层类

    package com.thinkgem.jeesite.modules.yudengji.web; import java.util.Date; import javax.servlet.http. ...

  5. Day11 - K - Good Luck in CET-4 Everybody! HDU - 1847

    大学英语四级考试就要来临了,你是不是在紧张的复习?也许紧张得连短学期的ACM都没工夫练习了,反正我知道的Kiki和Cici都是如此.当然,作为在考场浸润了十几载的当代大学生,Kiki和Cici更懂得考 ...

  6. Sublime设置html头部

    1.Ctrl + N,新建一个文档:2.Ctrl + Shift + P,打开命令模式,再输入 sshtml 进行模糊匹配,将语法切换到html模式:3.输入 !,再按下 Tab键或者 Ctrl + ...

  7. python之字符串,列表,字典,元组,集合内置方法总结

    目录 数字类型的内置方法 整型/浮点型 字符串类型的内置方法 列表的内置方法 字典的内置方法 元组的内置方法 集合类型内置方法 布尔类型 数据类型总结 数字类型的内置方法 整型/浮点型 加 + 减 - ...

  8. 3676: [Apio2014]回文串 求回文串长度与出现次数的最大值

    「BZOJ3676」[Apio2014] 回文串   Description 考虑一个只包含小写拉丁字母的字符串s.我们定义s的一个子串t的“出 现值”为t在s中的出现次数乘以t的长度.请你求出s的所 ...

  9. Prometheus简介【转】

    Prometheus简介 Prometheus受启发于Google的Brogmon监控系统(相似的Kubernetes是从Google的Brog系统演变而来),从2012年开始由前Google工程师在 ...

  10. Vue - 引入本地图片的两种方式

    第一种,只引入单个图片,这种引入方法在异步中引入则会报错. 比如需要遍历出很多图片展示时 <image :src = require('图片的路径') /> 第二种,可引入多个图片,也可引 ...