http://stackoverflow.com/questions/3283337/how-to-update-a-spinner-dynamically-in-android
package com.lfo.sumtone.sdk;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Spinner;
import java.util.List;
/**
* Created by user on 2015/3/25.
*/
public class ListBaseAdapter extends BaseAdapter {
protected Holder holder;
protected Context context;
protected LayoutInflater inflater;
public ListBaseAdapter( Holder holder ){
inflater = LayoutInflater.from(holder.context);
this.holder=holder;
this.context=holder.getContext();
}
@Override
public int getCount() {
if(holder.getList()==null){
return 0;
}
return holder.getList().size();
}
@Override
public Object getItem(int position) {
return holder.getList().get(position);
}
@Override
public long getItemId(int position) {
return holder.getItemId(position);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = inflater.inflate(holder.getLayout(), parent, false);
holder.setConvertView(convertView);
holder.setValue(position);
holder.getConvertView().setTag(holder);
//Utils.log("convertView == null,name:"+category.getProducts().get(position).getName());
} else {
holder = (Holder) holder.getConvertView().getTag();
//Utils.log("convertView not null");
}
//holder.setValue(category.getProducts().get(position));
return holder.getConvertView();
}
public Holder getHolder() {
return holder;
}
public void setHolder(Holder holder,Spinner spinner) {
this.holder = holder;
spinner.setAdapter(this);
this.notifyDataSetChanged();
}
public <T> void changeHolderList(List<T> list ,Spinner spinner){
holder.list=list;
spinner.setAdapter(this);
this.notifyDataSetChanged();
}
}
沒有留言:
張貼留言