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 }

二.

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。