1.维护数据以及适配器
LocationAdapter provinceAdapter = new LocationAdapter(provinceList, this);
mSpProvince.setAdapter(provinceAdapter);
mSpProvince.setPrompt("省")
2.适配器
public class LocationAdapter extends Base<Location> {
public LocationAdapter(List<Location> dataSource, Context context) {
super(dataSource, context);
}
@Override
public View createView(int position, View convertView, ViewGroup parent) {
Location myListItem = getItem(position);
return new MyAdapterView(this.context, myListItem);
}
class MyAdapterView extends LinearLayout {
public MyAdapterView(Context context, Location myListItem) {
super(context);
this.setOrientation(HORIZONTAL);
//这就是要是一个listview的item只是简单的textview的时候 这样简单的写 可以的
LayoutParams params = new LayoutParams(400, LayoutParams.WRAP_CONTENT);
params.setMargins(1, 1, 1, 1);
TextView name = new TextView(context);
name.setText(myListItem.getName());
addView(name, params);
}
}
}
3.对象Location
public class Location {
private Long id;
private Long parentId;
private String name;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getParentId() {
return parentId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void setParentId(Long parentId) {
this.parentId = parentId;
}
}
4.base 适配器
public abstract class Base<T> extends BaseAdapter {
protected List<T> list;
protected Context context;
protected LayoutInflater inflater;
protected BitmapUtils bitmapUtils;
public Base() {
}
public Base(List<T> list, Context context) {
this.list = list;
this.context = context;
inflater = LayoutInflater.from(context);
bitmapUtils = new BitmapUtils(context, FileUtils.GetBitmapCachePath(), ConstantStatic.DISK_CACHE_SIZE);
}
@Override
public int getCount() {
return list != null && !list.isEmpty() ? list.size() : 0;
}
@Override
public T getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
return createView(position, convertView, parent);
}
public abstract View createView(int position, View convertView, ViewGroup parent);
public void setData(List<T> list) {
this.list = list;
notifyDataSetChanged();
}
}
以后再遇到了listview的item是一个简单的textview的时候 就可以这样写 很简练