重写gallery 的 BaseAdapter

参考:http://www.cnblogs.com/topcoderliu/archive/2011/05/07/2039862.html  (引用其中代码时Android 要改成 android)

package mobi.game.adapter;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import mobi.game.gameProcess.R;

import mobi.game.tool.view.MainMenuItemView;

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;

/**

 * 放入gallery中的单个元素的view

 * **/

public class MainMenuAdapter extends BaseAdapter{

private Context mContext;//存放容器

private List<Map<String, Object>> listItems;    //关卡信息集合  

private LayoutInflater listContainer;           //视图容器  

private boolean[] hasChecked;                   //记录商品选中状态   

private String title[] = {"菜鸟级","高手级","大师级"};

private Integer[] imgeIDs = {R.drawable.beauty1,R.drawable.beauty2,R.drawable.beauty3}; //数据 

    private String[] score = {"100", "200","300"};   

    private Integer[] gradeIDs = {R.drawable.score_img,R.drawable.score_img,R.drawable.score_img};   

/**

* 适配器

* **/

public MainMenuAdapter(Context context){

mContext = context;

//得到数据

this.listItems = this.getListItems();

listContainer = LayoutInflater.from(context);   //创建视图容器并设置上下文 

hasChecked = new boolean[getCount()];   

}

/**

* 得到个数

* **/

@Override

public int getCount(){

return listItems.size();

}

/**

* 得到位置

* **/

public Object getItem(int position){

return null;

}

/**

* 得到位置

* **/

public long getItemId(int position) {

        return position;

    }

/**  

     * 记录勾选关卡

     * @param checkedID 选中的关卡序号  

     */  

    private void checkedChange(int checkedID) {   

        hasChecked[checkedID] = !hasChecked[checkedID];   

    }   

       

    /**  

     * 判断物品是否选择  

     * @param checkedID 关卡序号  

     * @return 返回是否选中状态 

     */  

    public boolean hasChecked(int checkedID) {   

        return hasChecked[checkedID];   

    }

@Override

public View getView(int position, View convertView, ViewGroup parent) {

//        final int selectID = position;   //设置选中项  

        MainMenuItemView  menuItemView = null;     //自定义视图   

        if (convertView == null) {   

        menuItemView = new MainMenuItemView();    

            

            convertView = listContainer.inflate(R.layout.main_menu_item, null);   //获取list_item布局文件的视图   

           

            menuItemView.setTitle((TextView)convertView.findViewById(R.id.titleItem));//获取控件对象 

            menuItemView.setImage((ImageView)convertView.findViewById(R.id.imageItem));

            menuItemView.setScore((TextView)convertView.findViewById(R.id.main_score));

            menuItemView.setGrade((ImageView)convertView.findViewById(R.id.main_grade));

            convertView.setTag(menuItemView);   //设置控件集到convertView   

        }else {   

        menuItemView = (MainMenuItemView)convertView.getTag();   

        }   

           

        //设置文字和图片   

        menuItemView.getTitle().setText((String)listItems.get(position).get("title"));

        menuItemView.getImage().setBackgroundResource((Integer)listItems.get(position).get("image"));

        menuItemView.getScore().setText((String)listItems.get(position).get("score"));

        menuItemView.getGrade().setBackgroundResource((Integer)listItems.get(position).get("grade"));

        return convertView;  

}

/**  

     * 初始化关卡信息  

     */  

    private List<Map<String, Object>> getListItems() {   

        List<Map<String, Object>> listItems = new ArrayList<Map<String, Object>>();   

        for(int i = 0; i < title.length; i++) {   

            Map<String, Object> map = new HashMap<String, Object>();    

            map.put("title", title[i]); //关卡标题

            map.put("image", imgeIDs[i]);              //关卡图片

            map.put("score", score[i]); //关卡分数  

            map.put("grade", gradeIDs[i]); //过卡等级 

            listItems.add(map);   

        }      

        return listItems;   

    }   

}

原文地址:https://www.cnblogs.com/sode/p/2132138.html