Попробуйте простой пользовательский адаптер:
public class MySpinnerAdapter extends BaseAdapter {
private Activity context;
public CitiesSpinnerAdapter(Activity context){
this.context=context;
}
@Override
public int getCount() {
return 0;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
RelativeLayout item= (RelativeLayout)context.getLayoutInflater().inflate(R.layout.<your spinner item layout name>, null);
//set your data to layout components
item.setTag(<your tag object>);
return item;
}