(3)初识BaseAdapter用法--数据适配器-初解

一.创建MyAdapter类,继承BaseAdapter

二.创建MyAdapter构造方法,从数据源中获取数据-数据源与数据适配器关联起来

三.改返回值,没有利用到ListView的缓存机制

package com.dream.myapplication;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import java.util.List;

/**
 * Created by dream on 2016/1/19.
 */
public class MyAdapter extends BaseAdapter {

    private LayoutInflater mInflater;
    //数据源与数据适配器关联起来
    private List<ItemBean> mlist;
    public MyAdapter(Context context,List<ItemBean>list){
        mlist = list;
        //content->要使用当前Adapter的界面对象;mInflater->布局装载器对象
        /*
            在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。
      不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;
      而findViewById()是找xml布局文件下的具体widget控件(如Button、TextView等)。
            具体作用:
      1、对于一个没有被载入或者想要动态载入的界面,都需要使用LayoutInflater.inflate()来载入;
      2、对于一个已经载入的界面,就可以使用Activiyt.findViewById()方法来获得其中的界面元素。
      LayoutInflater 是一个抽象类,在文档中如下声明:
      public abstract class LayoutInflater extends Object
      获得 LayoutInflater 实例的三种方式
      1. LayoutInflater inflater = getLayoutInflater();//调用Activity的getLayoutInflater()
      2. LayoutInflater inflater = LayoutInflater.from(context);
      3. LayoutInflater inflater =  (LayoutInflater)context.getSystemService
                              (Context.LAYOUT_INFLATER_SERVICE);
         */
        mInflater = LayoutInflater.from(context);
    }
    @Override
    public int getCount() {
        //返回ListView需要显示的数据量
        return mlist.size();
    }
    @Override
    public Object getItem(int position) {
        //指定索引所对应的数据项
        return mlist.get(position);
    }
    @Override
    public long getItemId(int position) {
        //返回指定索引所对应的数据项
        return position;
    }
    @Override
    //返回每一项的显示内容
    public View getView(int position, View convertView, ViewGroup parent) {
        //R.layout.item->需要装载到Item中的布局文件;Null通常都谢null  获取xml->Item
        View view = mInflater.inflate(R.layout.item,null);
        //获取控件
        ImageView imageView = (ImageView) view.findViewById(R.id.tv_image);
        TextView title = (TextView) view.findViewById(R.id.tv_title);
        TextView content = (TextView) view.findViewById(R.id.tv_content);
        //从mlist数据源中将数据取出来,赋给三个控件
        ItemBean bean = mlist.get(position);
        imageView.setImageResource(bean.ItemImageResId);
        title.setText(bean.ItemTitle);
        content.setText(bean.ItemContent);
        return view;
    }
}

MyAdapter

四.通过调用ListView的setAdapt方法,将Adapter对象传递给ListView,完成数据源与适配器绑定

时间: 2024-10-21 08:47:33

(3)初识BaseAdapter用法--数据适配器-初解的相关文章

(2)初识BaseAdapter用法--创建数据源

一.新建一个ItemBean类,封装Item属性 二.在MainActivity新建一个list并传入数据

Android必学之数据适配器BaseAdapter

.什么是数据适配器? 下图展示了数据源.适配器.ListView等数据展示控件之间的关系.我们知道,数据源是各种各样的,而ListView所展示数据的格式则是有一定的要求的.数据适配器正是建立了数据源与ListView之间的适配关系,将数据源转换为ListView能够显示的数据格式,从而将数据的来源与数据的显示进行解耦,降低程序的耦合性.这也体现了Android的适配器模式的使用.对于ListView.GridView等数据展示控件有多种数据适配器,本文讲解最通用的数据适配器——BaseAdap

【转】BaseAdapter用法

转自:http://blog.csdn.net/wangjia55/article/details/7430759 大家好,今天给大家讲解一下Android BaseAdapter(基础适配器)的用法,适配器的作用主要是用来给诸如(Spinner.ListView.GridView)来填充数据的.而(Spinner.ListView.GridView)都有自己的适配器(记起来麻烦).但是BaseAdapter(一招鲜)对他们来说却是通用的,为什么这么说呢,首先我们看一下API文档: 我们看到An

ListView和Adapter数据适配器的简单介绍

ListView 显示大量相同格式数据 常用属性: listSelector            listView每项在选中.按下等不同状态时的Drawable divider                ListView每项间的间隔Drawable dividerHeight        ListView每项间间隔的间隔高度 常用方法: setAdapter()                设置数据适配器 setOnItemClickListener()        设置每项点击事件

listview必须设置数据适配器才能显示出来

listview必须设置数据适配器才能显示出来,哪怕只设置一个空的数据适配器都行: lvTabDetail.setAdapter(new NewsListAdapter()); class NewsListAdapter extends BaseAdapter{ @Override public int getCount() { // TODO Auto-generated method stub return 0; } @Override public Object getItem(int p

无废话Android之listview入门,自定义的数据适配器、采用layoutInflater打气筒创建一个view对象、常用数据适配器ArrayAdapter、SimpleAdapter、使用ContentProvider(内容提供者)共享数据、短信的备份、插入一条记录到系统短信应用(3)

1.listview入门,自定义的数据适配器 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent&

数据适配器

public interface Adapter 作用:把复杂的数据填充在指定的视图界面上 ArryAdapter :用于绑定格式单一的数据:数据源可以是集合或数组 SimpleAdapter :用于绑定格式复杂的数据;数据源只能是特定泛型的集合 数据适配器是链接数据源和视图界面的桥梁 1)ArrayAdapter public class  ArrayAdapter extends BaseAdapter implements Filterable -->常用构造方法 ArrayAdapter

数据适配器:Adapter

数据适配器(Adapter): Adapter的功能是:为GridView.ListView等界面控件与数据之间搭建桥梁,当列表里的每一项显示到页面时,都会调用Adapter.getView(),返回一个View. 实现ListAdapter的Adapter分三类(1.BaseAdapter 2.SimpleAdapter 3.SimpleCursorAdapter). 1.BaseAdapter:  是一个实现了既能在ListView(实现了ListAdapter接口)和Spinner(实现了

【安卓笔记】数据适配器(adapter)中的观察者模式

ListView要想显示数据,需要用到数据适配器即Adapter.而当我们删除ListView的某个条目时,数据适配器中的数据源必然发生改变,这时候我们通过调用适配器类提供的notifyDataSetChanged方法通知listview数据发生改变,请求重新绘制. 这其中其实使用了一种比较常见的设计模式,即观察者模式. 在分析数据适配器中涉及到的观察者模式之前,我们先简单了解下什么是观察者模式. 观察者模式的定义:定义对象间的一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象