Android应用中BaseAdapter适配器
1.什么是适配器?
适配器:在安卓中,顾名思义就是把数据变成符合界面风格的形式,并且通过ListView显示出来。也就是说适配器是数据和界面之间的桥梁。
适配器在数据库中的数据(后台)和显示页面(前端)中充当一个转换器的角色,数据库中的数据(如数组,链表,数据库,集合等)通过适配器变成类手机页面能够正常显示的数据。可以看作是界面数据绑定的一种理解。假设把数据、适配器和ListView(页面)比喻成一个MVC模式的话,那么适配器(Adapter)在这中间就充当了Controller的角色。
2.为什么对象设置数据源
一般是为ListView提供数据的转换,当然GridView[网格视图]、Spinner[下拉列表]、Gallery[画廊]、ViewPage等都需要使用适配器来为其设置数据源。
3.ArrayAdapter示范:
使用数组适配器输出相对应的数据到ListView中
1、创建Android工程,后在布局文件中定义一个ListView,并且设置好相关属性。
<?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">
<ListView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="match_parent"></ListView>
</LinearLayout>
2、在activity类中书写代码
package com.example.listviewtest;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends AppCompatActivity {
private String[] data={"apple","banana","orange","watermalon","pear","grape","pineapple","strawberry",
"cheery","mango","apple","banana","orange","watermalon","pear","grape","pineapple","strawberry", "cheery","mango"
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//创建数组适配器对象,并且通过参数设置类item项的布局样式和数据源
//android.R.layout.simple_list_item_1是android内置的布局文件,里面只有一个TextView,可用于简单的显示一个文本
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
MainActivity.this,android.R.layout.simple_list_item_1,data);
//获取布局文件中的ListView控件对象
ListView listView = (ListView)findViewById(R.id.list_view);
//把数组适配器加载到ListView控件中
listView.setAdapter(adapter);
}
}
3、运行结果:这样不需要我们自己定义TextView控件中的内容,通过数组适配器实现了这一个目的。