package net.dev123.yibo.service.adapter;
import net.dev123.commons.ServiceProvider;
import net.dev123.yibo.R;
import net.dev123.yibo.common.theme.Theme;
import net.dev123.yibo.common.theme.ThemeUtil;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
public class SpSpinnerAdapter extends BaseAdapter {
private ServiceProvider[] serviceProviders = {
ServiceProvider.Sina,
ServiceProvider.Tencent,
ServiceProvider.Sohu,
ServiceProvider.NetEase,
ServiceProvider.Fanfou,
ServiceProvider.Twitter,
ServiceProvider.RenRen,
ServiceProvider.KaiXin,
ServiceProvider.QQZone
};
private String[] icons = {
"icon_logo_sina_min",
"icon_logo_tencent_min",
"icon_logo_sohu_min",
"icon_logo_netease_min",
"icon_logo_fanfou_min",
"icon_logo_twitter_min",
"icon_logo_renren_min",
"icon_logo_kaixin_min",
"icon_logo_qqzone_min"
};
private String[] spNames;
private LayoutInflater layoutInflater;
public SpSpinnerAdapter(Context context) {
this.spNames = context.getResources().getStringArray(R.array.service_provider);
this.layoutInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return serviceProviders.length;
}
@Override
public ServiceProvider getItem(int position) {
return serviceProviders[position];
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ServiceProviderHolder holder = null;
if (convertView == null) {
convertView = layoutInflater.inflate(R.layout.list_item_sp, null);
holder = new ServiceProviderHolder(convertView);
convertView.setTag(holder);
} else {
holder = (ServiceProviderHolder)convertView.getTag();
}
holder.reset();
Theme theme = ThemeUtil.createTheme(convertView.getContext());
holder.ivSpIcon.setImageDrawable(theme.getDrawable(icons[position]));
holder.tvSpName.setText(spNames[position]);
return convertView;
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
return getView(position, convertView, parent);
}
}