Android学习之适配器Adapter

Adapter是个什么角色呢?其实它的作用就是View界面和数据之间的桥梁。我们可以看作是界面数据绑定的一种理解,它所操纵的数据一般都是一些比较复杂的数据,如数组,链表,数据库,集合等。

常用的适配器有:

(1)ArrayAdapter;             数组作为数据源,填充的是ArrayAdapter

(2)SimpleAdapter;           List作为数据源,填充的是SimpleAdapter

(3)SimpleCursorAdapter; 数据来源一般都是数据库查询得到的Cursor

(4)自定义适配器;               为什么要定义自己的适配器呢?原因就在于,当我们想用一些其它的展现方式,或者是我们需要的,呈现方式,这是就得DIY了。首先我们定义一个类让它继承自BaseAdapter,再让它实现一里面所说的那几个方法。那么这个自定义适配器就算好了。

下面我们看个实例就明白了:

一 .ArrayAdapter

1.xml代码:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="match_parent"
 4     android:layout_height="fill_parent"
 5     android:orientation="vertical" >
 6
 7     <ListView
 8         android:id="@+id/myArrayList"
 9         android:layout_width="match_parent"
10         android:layout_height="wrap_content" />
11
12 </LinearLayout>

2.java代码:

 1 package com.example.arrayadapter;
 2
 3 import java.util.ArrayList;
 4 import android.app.Activity;
 5 import android.os.Bundle;
 6 import android.widget.ArrayAdapter;
 7 import android.widget.ListView;
 8
 9 public class MainActivity extends Activity {
10     private ListView mListView;
11     private ArrayList<String> mArrayList = null;
12
13     @Override
14     protected void onCreate(Bundle savedInstanceState) {
15         super.onCreate(savedInstanceState);
16         setContentView(R.layout.activity_main);
17         mListView = (ListView) findViewById(R.id.myArrayList);
18         mListView.setAdapter(new ArrayAdapter<String>(this,
19                 android.R.layout.simple_expandable_list_item_1, getData()));
20     }
21
22     private ArrayList<String> getData() {
23         mArrayList = new ArrayList<String>();
24         mArrayList.add("item1");
25         mArrayList.add("item2");
26         mArrayList.add("item3");
27         mArrayList.add("item4");
28         mArrayList.add("item5");
29         mArrayList.add("item6");
30         mArrayList.add("item7");
31         mArrayList.add("item8");
32         mArrayList.add("item9");
33         mArrayList.add("item10");
34         return mArrayList;
35     }
36 }

二.

时间: 2024-08-29 08:41:05

Android学习之适配器Adapter的相关文章

[Android学习笔记十]Adapter在视图与数据绑定中的应用

Android开发中视图和数据的绑定离不开Adapt系列的类,在呈现给用户的界面友好美观和内容丰富的应用中视图为骨,内容为肉,Adapter则是骨肉相连的筋. 下图是Android类库中的Adapter类层次图: 在android support库以及更多的第三方库中存在大量的Adapter类,Adapter在视图和数据绑定中起着至关重要的桥接作用. 这里收集一些Adapter的应用文章: 1. Android Adapter的体系 2. Android研究院之应用程序ListView详解 3.

设计模式学习心得&lt;适配器 Adapter&gt;

适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁.这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能. 这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能. 概述 意图 将一个类的接口转换成客户希望的另外一个接口. 适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 主要解决 主要解决在软件系统中,常常要将一些"现存的对象"放到新的环境中,而新环境要求的接口是现对象不能满足的. 何时使用 系统需要使用现有的类,而此类

Android ListView的适配器 Adapter 中GetView方法调用次数大于数据条数的问题

情况描述: 今天在写数据展示的时候,用了ListView,在它的适配器当中,发现getview方法执行的次数是数据条目的N倍(我这边显示的是4倍,这个倍数值不知道会不会变化),这显然是不科学的! 查阅资料,发现是ListView的布局问题.我把 android:layout_height="wrap_content"高度设置成了wrap_content.而wrap_content值使得ListView没有取到实际的高度,他还要根据计算才能确定,而每一次计算应该会触发listview的渲

Android学习之适配器SimpleCursorAdapter

三.   SimpleCursorAdapter与SimpleAdapter用法相近.只是将List对象换成了Cursor对象.而且SimpleCursorAdapter类构造方法的第四个参数from表示Cursor对象中的字段,而SimpleAdapter类构造方法的第四个参数from表示Map对象中的key. 这个实例主要是查询通讯录,实现联系人拨号实例: 1.java代码: 1 package com.example.simplecursoradapter; 2 3 import andr

Android学习四、Android中的Adapter

一.Adapter的介绍 An Adapter object acts as a bridge between an AdapterView and the underlying data for that view. The Adapter provides access to the data items. The Adapter is also responsible for making a View for each item in the data set. 一个Adapter是Ad

android适配器Adapter

一.什么是适配器,适配器有什么用? 适配器是AdapterView视图(如ListView - 列表视图控件.Gallery - 缩略图浏览器控件.GridView - 网格控件.Spinner - 下拉列表控件.AutoCompleteTextView - 自动提示文本框.ExpandableListView - 支持展开/收缩功能的列表控件等)与数据之间的桥梁,用来处理数据并将数据绑定到AdapterView上.android提供多种适配器,开发时可以针对数据源的不同采用最方便的适配器,也可

【转】 Pro Android学习笔记(二二):用户界面和控制(10):自定义Adapter

目录(?)[-] 设计Adapter的布局 代码部分 Activity的代码 MyAdapter的代码数据源和构造函数 MyAdapter的代码实现自定义的adapter MyAdapter的代码继续探讨BaseAdapter 我们可以同继承抽象类BaseAdapter来实现自己的Adapter,自己设置子View的UI,不同子View可以由不同的布局,并自己进行数据和子view中数据的对应关系.图是例子的呈现结果,我们有很多图标,对这些图标按一定大小进行缩放,然后布局在GridView中.这个

Android学习笔记(10)——数据适配器ArrayAdapter和SimpleAdapter

上一篇文章我们介绍了关于ListView的基本知识,也说到了一些关于数据适配器Adapter的问题,这里我们继续介绍两种比较常见的数据适配器的类型,ArrayAdapter和SimpleAdapter.这两种适配器各自有各自的特点,适用于不同的情况. ArrayAdapter 这种适配器比较简单,常用于仅仅是文本内容的ListView.没有图标或者比较复杂的布局的情况下,实现方法主要就是去填写构造函数中的参数,ArrayAdapter函数的构造方法有好几种,这里介绍了最主要的两种情况,具体可以看

【边做项目边学Android】知识点:Adapter适配器

1.概念 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带.在常见的 View(ListView,GridView)等地方都需要用到Adapter.如下图直观的表达了Data.Adapter.View三者的关系: Android中所有的Adapter一览: 由图可以看到在Android中与Adapter有关的所有接口.类的完整层级图.在我们使用过程中可以根据自己的需求实现接口或者继承类进行一定的扩展.比较常用的有 BaseAdapter,Simple