android适配器怎样进行数据适配

android适配器怎样进行数据适配,第1张

顾名思义,就是把一些数据给弄得适当,适合以便于在View上显示。适配器就像显示器,把复杂的东西按人可以接受的方式来展现。也可以这样来理解适配器,ListView通过适配器,理解我们要对ListView里加入什么内容,而我们在适配器里@Override的方法,就是让我们写上我们要告诉这个ListView的一些基本内容。

可以说适配器就是数据和视图之间的桥梁,学好适配器还是非常重要的。

让我们先从各个方面理解适配器,然后看一些例子我想应该就可以彻底掌握它了!

适配器的工作原理:

适配器是怎么处理得到的数据,并把它显示出来的呢?其实很简单,说白了适配器它也是一个类,在类里面它实 现了父类的这几个方法:

public int getCount() //得到数据的行数

public Object getItem(int position) //根据position得到某一行的记录

public long getItemId(intposition) //的到某一条记录的ID

还有最重要的:

publicView getView(intposition, View convertView, ViewGroup parent)

//相比于其它几个方法这个方法是最重要的,它显式的定义了适配器将要以什么样的方式去显示我们所 填充的数据,在自定义的适配器里面我们通常会给它写个布局文件。

这些在最后的一两个例子里会仔细讲解,我们从简单的看起:首先看看常用的适配器

我们常用的适配器一共有三个,当然不包含自定义的适配器:就是ArrayAdapter,SimpleAdapter,SimpleCursorAdapter 这三个,他们都是继承于BaseAdapter 。

下面我会逐一介绍,我们在具体应用中来继续学习Adapter:

说道Adapter不得不说道ListView,或者说用到ListView不得不提到Adapter

在android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示。

而列表的显示需要三个元素:

1.ListVeiw 用来展示列表的View。

2.适配器 用来把数据映射到ListView上的中介。

3.数据 具体的将被映射的字符串,图片,或者基本组件。

根据列表的适配器类型,列表分为三种,ArrayAdapter,SimpleAdapter和SimpleCursorAdapter

其中以ArrayAdapter最为简单,只能展示一行字。SimpleAdapter有最好的扩充性,可以自定义出各种效果。SimpleCursorAdapter可以认为是SimpleAdapter对数据库的简单结合,可以方面的把数据库的内容以列表的形式展示出来

我们从最简单的ListView开始(ArrayAdapter):

我打算把这几种适配器的例子放在一个app里面,然后上传到我的资源,再分享链接给大家。所以我打算由MainActivity里的Button来跳转到各个例子,现在让我们一步步的把这个Demo写出来。

项目开始啦!

(1)首先,新建一个app ,名字叫做 AdapterDemo ,先在activity_main.xml里添加一个button,一会跳转的时候使用。

(2)然后新建一个类ArrayAdapterDemo继承自Activity作为我们第一个小例子的Activity,@Override 我们的onCreate方法

新建一个xml文件arrayadapterdemo.xml作为我们的布局文件,其中包含一个文本域和一个ListView,代码如下:

arrayadapterdemo.xml:

?

1

2

3

4

5

6

7

8

9

10

<!--?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:orientation="vertical">

<textview android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="这是ArrayAdapter的一个例子">

</textview>

<listview android:id="@+id/arrayadapterdemolistview" android:layout_width="wrap_content" android:layout_height="wrap_content">

</listview>

</linearlayout>

(3)然后回到ArrayAdapterDemo,定义一个Listview暂且叫做lv,并且lv=(ListView)findViewById(R.id.arrayadapterdemolistview),setContentView()为刚才的xml布局,然后为lv设置一个适配器,这里使用的是安卓原生的ArrayAdapter(Context context, inttextViewResourceId, List objects)来装配数据,要装配这些数据就需要一个连接ListView视图对象和数组数据的适配器 来两者的适配工作。

ArrayAdapter的构造需要三个参数,依次为:this,布局文件(注意这里的布局文件描述的是列表的每一行的布局, android.R.layout.simple_list_item_1是系统定义好的布局文件只显示一行文字,数据源(一个List集合)。同时用setAdapter()完 成适配的最后工作。

一般写一个getData()方法来作为最后一个参数,最终代码如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

package com.example.adapterdemo

import java.util.ArrayList

import java.util.List

import android.app.Activity

import android.os.Bundle

import android.widget.ArrayAdapter

import android.widget.ListView

public class ArrayAdapterDemo extends Activity {

private ListView lv

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState)

setContentView(R.layout.arrayadapterdemo)

lv=(ListView)findViewById(R.id.arrayadapterdemolistview)

lv.setAdapter(new ArrayAdapter<string>(this,

android.R.layout.simple_expandable_list_item_1, getData()))

}

public List<string>getData(){

List<string>data = new ArrayList<string>()

data.add("测试数据1")

data.add("测试数据2")

data.add("测试数据3")

data.add("测试数据4")

return data

}

}

</string></string></string></string>

再在AndroidManifest.xml中注册Activity并在主界面中完成button监听跳转就可以了。

数据适配器是 ADO.NET 托管提供程序(用于在数据源和数据集之间通信的一组对象)的组成部分。(除适配器以外,托管提供程序还包括连接对象、数据读取器对象和命令对象。)适配器用于在数据源和数据集之间交换数据。在许多应用程序中,这意味着从数据库将数据读入数据集,然后从数据集将已更改数据写回数据库。然而,数据适配器可以在任意源和数据集之间移动数据。例如,可能会有在 Microsoft Exchange 服务器和数据集之间移动数据的适配器。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10055645.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存