package com.mehmetakiftutuncu.eshotroid.adapter; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.TextView; import com.mehmetakiftutuncu.eshotroid.R; /** Drawer menu list adapter class is the adapter that supplies the drawer list * with items and their icons * * @author mehmetakiftutuncu */ public class DrawerMenuListAdapter extends ArrayAdapter<String> { /** Tag for debugging */ public static final String LOG_TAG = "Eshotroid_DrawerMenuListAdapter"; /** Holder class for each item */ static class ViewHolder { public ImageView icon; public TextView name; } /** Constructor of the adapter */ public DrawerMenuListAdapter(Context context, String[] items) { super(context, R.layout.item_drawable_menu, items); } @Override public View getView(int position, View convertView, ViewGroup parent) { // Try to use the view in memory View row = convertView; // If the view is not ready if(row == null) { // Get inflater LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); // Inflate and create the view row = inflater.inflate(R.layout.item_drawable_menu, parent, false); /* Create a new holder for this view to hold references of it's * components */ ViewHolder myViewHolder = new ViewHolder(); // Find references for components and store them in holder myViewHolder.icon = (ImageView) row.findViewById(R.id.imageView_item_drawableMenu_icon); myViewHolder.name = (TextView) row.findViewById(R.id.textView_item_drawableMenu_name); /* Add the holder to the view as a tag so references can be accessed later */ row.setTag(myViewHolder); } // Get the holder of this view to access it's components ViewHolder holder = (ViewHolder) row.getTag(); // Set content holder.name.setText(getItem(position)); holder.icon.setImageResource(getIcon(getItem(position))); return row; } /** Gets the icon resource id for the given item name */ private int getIcon(String item) { if(item.equals(getContext().getString(R.string.drawerMenu_rate))) return R.drawable.ic_action_good; else if(item.equals(getContext().getString(R.string.drawerMenu_contact))) return R.drawable.ic_action_email; else if(item.equals(getContext().getString(R.string.drawerMenu_website))) return R.drawable.ic_action_web_site; else if(item.equals(getContext().getString(R.string.drawerMenu_help))) return R.drawable.ic_action_help; else if(item.equals(getContext().getString(R.string.drawerMenu_about))) return R.drawable.ic_action_about; return 0; } }