package com.gnod.geekr.app.adapter; import java.util.ArrayList; 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; import com.gnod.geekr.R; import com.gnod.geekr.app.AppConfig; import com.gnod.geekr.app.adapter.item.SidebarItem; import com.gnod.geekr.tool.manager.DrawableManager; public class SidebarMenuAdapter extends BaseAdapter { private ArrayList<SidebarItem> mList = new ArrayList<SidebarItem>(); private LayoutInflater mInflater; public SidebarMenuAdapter(Context context) { mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } public void addGroup(SidebarItem group) { mList.add(group); } public void removeGroup(SidebarItem group) { mList.remove(group); } public void removeGroup(int index) { mList.remove(index); } public void removeAllGroup() { mList.clear(); } @Override public int getCount() { return mList.size(); } @Override public Object getItem(int position) { return mList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { GroupView groupView; if(convertView == null) { convertView = mInflater.inflate(R.layout.sidebar_item, null); groupView = new GroupView(); groupView.icon = (ImageView) convertView.findViewById(R.id.sidebar_item_icon); groupView.name = (TextView) convertView.findViewById(R.id.sidebar_item_name); convertView.setTag(groupView); } else { groupView = (GroupView) convertView.getTag(); } bindGroupView(groupView, position); return convertView; } private void bindGroupView(GroupView groupView, int position) { SidebarItem item = mList.get(position); groupView.name.setText(item.name); if(item.iconId != -1) groupView.icon.setImageResource(item.iconId); } public class GroupView { public ImageView icon; public TextView name; } }