前言:

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. 《SQL 进阶教程》 查找局部不一致的数据

    -- 从下面这张商品表里找出价格相等的商品的组合 select * from products p1LEFT JOIN products p2on p1.price = p2.price and p1 ...

  2. tcp连接建立和断开

    TCP协议作为传输层主要协议之一,具有面向连接,端到端,可靠的全双工通信,面向字节流的数据传输协议. 1.TCP报文段 虽然TCP面试字节流,但TCP传输的数据单元却是报文段.TCP报文段分为TCP首 ...

  3. [HNOI 2017]大佬

    Description 题库链接 题意简述来自Gypsophila. 你现在要怼 \(m\) 个大佬,第 \(i\) 个大佬的自信值是 \(C_i\) .每次怼大佬之前,你的自信值是 \(mc\),等 ...

  4. js 实现复制功能

    //复制注册地址 function copyTuiJianAddress() { try { var name = document.getElementById("share") ...

  5. java各种面试问题

    二.Java多线程相关 线程池的原理,为什么要创建线程池?创建线程池的方式: 线程的生命周期,什么时候会出现僵死进程: 说说线程安全问题,什么实现线程安全,如何实现线程安全: 创建线程池有哪几个核心参 ...

  6. mysql 命令行个性化设置

    通过配置显示主机和用户名 mysql -u root -p --prompt="(\u@\h) [\d]>" 或在配置文件中修改,可在命令行中的目标位置查看 --tee na ...

  7. Python 之网络编程之进程总体概要

     一: 进程的概念:(Process) 进程就是正在运行的程序,它是操作系统中,资源分配的最小单位. 资源分配:分配的是cpu和内存等物理资源 进程号是进程的唯一标识 同一个程序执行两次之后是两个进程 ...

  8. Python 基础之if if else

    1.代码块 以冒号作为开始,用缩进来划分区域,这个整体叫做代码块 if 5 == 5:   print(1)   print(2)   if True:   print(3)   print(4)   ...

  9. 当你输入一个url链接发生了什么?

    先看一张图 打开手机和pad的QQ 发送消息给QQ好友,此时发送了一个请求给服务器,服务器接受到后反馈给手机和pad发送消息成功,然后QQ好友就可以接受到消息了 电脑浏览器输入百度 打开台式电脑或者笔 ...

  10. KMP(模板)

    kmp算法是解决单模匹配问题的算法,难点在于求next[]数组 求next[]数组:对于模板串的所有前缀子串的最长公共前后缀的长度,就是next[]数组的值 eg:主串为cbbbaababac  子串 ...