参考: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;

}

}

更多相关文章

  1. Android、iOS添加子视图方法比较
  2. android2.3 View视图框架源码分析之一:android是如何创建一个vie
  3. 支付宝客户端架构解析:Android 容器化框架初探
  4. 画廊视图Gallery
  5. 阅读《Android 从入门到精通》(21)——滚动视图
  6. Android sqlite约束-视图-检查
  7. ANDROID L——Material Design详解(视图和阴影)
  8. Android23-视图坐标系以及MotionEvent事件
  9. [Android]ButterKnife-无尽之刃-绑定视图控件和事件的快速开发工

随机推荐

  1. writing dumpstate to file android
  2. Android(安卓)ProgressBar example
  3. android版本与API对应关系
  4. Follow up to “Android(安卓)graphics t
  5. Xposed: 勾住(Hook) Android应用程序对象
  6. Android(安卓)五大布局
  7. android4.0系统点击后颜色-浅蓝色
  8. Android定制之常见问题解决
  9. ListView去除分割线的问题
  10. android如何改变默认横竖屏方向