package com.yamin.reader.adapter; import java.util.ArrayList; import android.content.Context; import android.graphics.Color; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.TextView; import com.yamin.reader.R; import com.yamin.reader.model.Book; import com.yamin.reader.utils.Commons; public class BookShelfListAdaper extends BaseAdapter { private LayoutInflater mInflater; private ArrayList<Book> mData; private int[] itemState; private boolean isEditMode = false; // private boolean actionModeStarted; public BookShelfListAdaper(Context context, ArrayList<Book> mData) { mInflater = LayoutInflater.from(context); this.mData = mData; itemState = new int[mData.size()]; init(); } public ArrayList<Book> getmData() { return mData; } public void setmData(ArrayList<Book> smData) { this.mData =smData; itemState = new int[smData.size()]; init(); } private void init() { for (int i = 0; i < mData.size(); i++) { itemState[i] = 0; } } public void uncheckAll() { for (int i = 0; i < mData.size(); i++) { itemState[i] = 0; } } public boolean isAllChecked() { for (int i : itemState) { if (i == 0) return false; } return true; } public void checkAll() { for (int i = 0; i < itemState.length; i++) { itemState[i] = 1; } } public int getCheckedItemCount() { int count = 0; for (int i : itemState) { if (i == 1) count++; } return count; } @Override public int getCount() { return mData.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } public int[] getItemState() { return itemState; } public void setItemState(int[] itemState) { this.itemState = itemState; } public boolean isEditMode() { return isEditMode; } public void setEditMode(boolean isEditMode) { this.isEditMode = isEditMode; } /* * public int[] getItemState() { return itemState; } * * public void setItemState(int[] itemState) { this.itemState = itemState; } */ @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; // convertView为null的时候初始化convertView。 if (convertView == null) { holder = new ViewHolder(); if (!Commons.isGridViewMode) { convertView = mInflater.inflate( R.layout.bookshelf_item_listview, null); } else { convertView = mInflater.inflate( R.layout.bookshelf_tem_gridview, null); } holder.img = (RelativeLayout) convertView.findViewById(R.id.cover); holder.title = (TextView) convertView.findViewById(R.id.tvBookName); holder.title1 = (TextView) convertView.findViewById(R.id.tvBookSize); holder.title2 = (TextView) convertView.findViewById(R.id.tvBookProgress); holder.checked = (ImageView) convertView.findViewById(R.id.bookshelfFileSelectIcon); } else { holder = (ViewHolder) convertView.getTag(); } if(returnSuffix(mData.get(position).getBookName()).contains(".txt")){ holder.img.setBackgroundResource(R.drawable.listview_txtcover); } else if(returnSuffix(mData.get(position).getBookName()).contains(".epub")){ holder.img.setBackgroundResource(R.drawable.listview_epubcover); } else if(returnSuffix(mData.get(position).getBookName()).contains(".html")){ holder.img.setBackgroundResource(R.drawable.listview_htmlcover); } else if(returnSuffix(mData.get(position).getBookName()).contains(".oeb")){ holder.img.setBackgroundResource(R.drawable.listview_oebicon); } else if(returnSuffix(mData.get(position).getBookName()).contains(".mobi")){ holder.img.setBackgroundResource(R.drawable.listview_mobiicon); } else{ holder.img.setBackgroundResource(R.drawable.listview_othercover); } // holder.title.setText(mData.get(position).getBookName()); holder.title1.setText(mData.get(position).getBookSize()); holder.title1.setTextColor(Color.RED); if (TextUtils.isEmpty(mData.get(position).getBookProgress())) { holder.title2.setText(R.string.read_no); } else { holder.title2.setText(mData.get(position).getBookProgress()); } // if (isEditMode) { holder.checked.setVisibility(View.VISIBLE); if (itemState[position] == 0) { holder.checked.setBackgroundResource(R.drawable.checkbox_unselect); } else { holder.checked.setBackgroundResource(R.drawable.checkbox_selected); } } else { holder.checked.setVisibility(View.GONE); } convertView.setTag(holder); return convertView; } public final class ViewHolder { public RelativeLayout img; public TextView title; public TextView title1; public TextView title2; public ImageView checked; } public String returnSuffix(String fileName){ if (fileName.lastIndexOf(".") > 0){ String fileSuffix = fileName.substring(fileName.lastIndexOf(".")); return fileSuffix; } return null; } public String returnName(String fileName){ if (fileName.indexOf(".") > 0){ String name = fileName.substring(fileName.indexOf(".")); return name; } return null; } }