package boston.Bus.Map.ui;
import java.util.List;
import boston.Bus.Map.R;
import boston.Bus.Map.util.SelectionResources;
import com.schneeloch.bostonbusmap_library.data.Selection;
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class ModeAdapter extends ArrayAdapter<Selection.Mode> {
private final Activity context;
public ModeAdapter(Activity context, List<Selection.Mode> modes)
{
super(context, R.layout.icon, modes);
setDropDownViewResource(R.layout.icon_dropdown);
this.context = context;
}
//this piece of code was adapted from ContactAdder.java in the Android examples
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
// Inflate a view template
if (convertView == null) {
LayoutInflater layoutInflater = context.getLayoutInflater();
convertView = layoutInflater.inflate(R.layout.icon_dropdown, parent, false);
}
ImageView icon = (ImageView) convertView.findViewById(R.id.icon_dropdown);
TextView text = (TextView) convertView.findViewById(R.id.text_dropdown);
// Populate template
Selection.Mode data = getItem(position);
text.setText(SelectionResources.getText(data));
Drawable drawable = context.getResources().getDrawable(SelectionResources.getDrawable(data));
icon.setImageDrawable(drawable);
return convertView;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null)
{
LayoutInflater inflater = context.getLayoutInflater();
convertView = inflater.inflate(R.layout.icon, parent, false);
}
ImageView icon = (ImageView)convertView.findViewById(R.id.icon);
Selection.Mode data = getItem(position);
Drawable drawable = context.getResources().getDrawable(SelectionResources.getDrawable(data));
icon.setImageDrawable(drawable);
return convertView;
}
}