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];
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;