package ph.devcon.android.navigation.adapter; import android.app.Activity; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.TextView; import butterknife.ButterKnife; import butterknife.InjectView; import ph.devcon.android.R; /** * Created by lope on 11/15/14. */ public class NavigationAdapter extends ArrayAdapter<String> { static String[] items = new String[]{ "News", "Programs", "Speakers", "Attendees", "Sponsors", }; public NavigationAdapter(Context context) { super(context, R.layout.item_navigation_drawer, items); } @Override public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = ((Activity) getContext()).getLayoutInflater(); ViewHolder holder; if (convertView != null) { holder = (ViewHolder) convertView.getTag(); } else { convertView = inflater.inflate(R.layout.item_navigation_drawer, parent, false); holder = new ViewHolder(convertView); convertView.setTag(holder); } holder.txtTitle.setText(getItem(position)); setColor(position, holder.txtTitle); return convertView; } /** * active_* is a color selector, not just a color so we'll use getColorStateList * * @param position * @param txtTitle */ public void setColor(int position, TextView txtTitle) { switch (position) { case 0: txtTitle.setTextColor(getContext().getResources().getColorStateList(R.color.active_green)); break; case 1: txtTitle.setTextColor(getContext().getResources().getColorStateList(R.color.active_orange)); break; case 2: txtTitle.setTextColor(getContext().getResources().getColorStateList(R.color.active_purple)); break; case 3: txtTitle.setTextColor(getContext().getResources().getColorStateList(R.color.active_yellow)); break; case 4: txtTitle.setTextColor(getContext().getResources().getColorStateList(R.color.active_blue)); break; default: txtTitle.setTextColor(getContext().getResources().getColorStateList(R.color.active_green)); break; } } static class ViewHolder { @InjectView(android.R.id.text1) TextView txtTitle; public ViewHolder(View view) { ButterKnife.inject(this, view); } } }