package com.nbs.client.assassins.navigation; import com.nbs.client.assassins.R; import com.nbs.client.assassins.R.id; import com.nbs.client.assassins.R.layout; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; public class MenuHeaderItem implements MenuListItem { private final LayoutInflater inflater; private final MenuHeaderData row; public MenuHeaderItem(LayoutInflater inflater, MenuHeaderData row) { this.inflater = inflater; this.row = row; } @Override public View getView(View convertView) { MenuHeaderItem.ViewHolder holder; View view; //we don't have a convertView so we'll have to create a new one if (convertView == null || !(convertView.getTag() instanceof MenuHeaderItem.ViewHolder)) { ViewGroup viewGroup = (ViewGroup)inflater.inflate(R.layout.menu_header_item, null); //use the view holder pattern to save already looked up subviews holder = new MenuHeaderItem.ViewHolder((TextView)viewGroup.findViewById(R.id.header_text)); viewGroup.setTag(holder); view = viewGroup; } else { //get the holder back out holder = (MenuHeaderItem.ViewHolder)convertView.getTag(); view = convertView; } //actually setup the view holder.textView.setText(row.getMainText()); return view; } @Override public int getViewType() { return MenuItemType.MENU_HEADER.ordinal(); } private static class ViewHolder { final TextView textView; private ViewHolder(TextView titleView) { this.textView = titleView; } } }