码迷,mamicode.com
首页 > 移动开发 > 详细

Android 简单案例:继承BaseAdapter实现Adapter

时间:2017-09-24 13:50:12      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:return   length   second   ram   sample   ati   span   ==   else   

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

/**
 * This class provides data as Views. It is designed to support both ListView and GridView by
 * changing a layout resource file to inflate.
 */
public class MeatAdapter extends BaseAdapter {

    private final LayoutInflater mLayoutInflater;
    private final int mResourceId;

    /**
     * Create a new instance of {@link MeatAdapter}.
     *
     * @param inflater   The layout inflater.
     * @param resourceId The resource ID for the layout to be used. The layout should contain an
     *                   ImageView with ID of "meat_image" and a TextView with ID of "meat_title".
     */
    public MeatAdapter(LayoutInflater inflater, int resourceId) {
        mLayoutInflater = inflater;
        mResourceId = resourceId;
    }

    @Override
    public int getCount() {
        return Meat.MEATS.length;
    }

    @Override
    public Meat getItem(int position) {
        return Meat.MEATS[position];
    }

    @Override
    public long getItemId(int position) {
        return Meat.MEATS[position].resourceId;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        final View view;
        final ViewHolder holder;
        if (null == convertView) {
            view = mLayoutInflater.inflate(mResourceId, parent, false);
            holder = new ViewHolder();
            holder.image = (ImageView) view.findViewById(R.id.meat_image);
            holder.title = (TextView) view.findViewById(R.id.meat_title);
            view.setTag(holder);
        } else {
            view = convertView;
            holder = (ViewHolder) view.getTag();
        }
        Meat meat = getItem(position);
        holder.image.setImageResource(meat.resourceId);
        holder.title.setText(meat.title);
        return view;
    }

    private static class ViewHolder {
        public ImageView image;
        public TextView title;
    }

}

 

/**
 * Sample data.
 */
public class Meat {

    public int resourceId;
    public String title;

    public Meat(int resourceId, String title) {
        this.resourceId = resourceId;
        this.title = title;
    }

    public static final Meat[] MEATS = {
            new Meat(R.drawable.p1, "First"),
            new Meat(R.drawable.p2, "Second"),
            new Meat(R.drawable.p3, "Third"),
            new Meat(R.drawable.p4, "Fourth"),
            new Meat(R.drawable.p5, "Fifth"),
            new Meat(R.drawable.p6, "Sixth"),
            new Meat(R.drawable.p7, "Seventh"),
            new Meat(R.drawable.p8, "Eighth"),
            new Meat(R.drawable.p9, "Ninth"),
            new Meat(R.drawable.p10, "Tenth"),
            new Meat(R.drawable.p11, "Eleventh"),
    };

}

Android 简单案例:继承BaseAdapter实现Adapter

标签:return   length   second   ram   sample   ati   span   ==   else   

原文地址:http://www.cnblogs.com/onelikeone/p/7586889.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!