public class MyActivity extends Activity {
private ListView mListView
private List<Info> mInfos = new ArrayList<Info>()
private Info info1 =new Info()
private Info info2 =new Info()
private Info info3 =new Info()
private Info info4 =new Info()
private Info info5 =new Info()
private Info info6 =new Info()
private Info info7 =new Info()
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState)
setContentView(R.layout.main)
info1.setTitle("你484傻 第1条")
info1.setTime("20121230")
info1.setImageView(R.drawable.ic_launcher)
info2.setTitle("你484傻 第2条")
info2.setTime("20121231")
info2.setImageView(R.drawable.image1)
info3.setTitle("你484傻 第3条")
info3.setTime("20121231")
info3.setImageView(R.drawable.ic_launcher)
info4.setTitle("你484傻 第4条")
info4.setTime("20121231")
info4.setImageView(R.drawable.image1)
info5.setTitle("你484傻 第5条")
info5.setTime("20121231")
info5.setImageView(R.drawable.ic_launcher)
info6.setTitle("你484傻 第6条")
info6.setTime("20121231")
info6.setImageView(R.drawable.image1)
info7.setTitle("你484傻 第7条")
info7.setTime("20121231")
info7.setImageView(R.drawable.ic_launcher)
mInfos.add(info1)
mInfos.add(info2)
mInfos.add(info3)
mInfos.add(info4)
mInfos.add(info5)
mInfos.add(info6)
mInfos.add(info7)
mListView= (ListView) findViewById(R.id.listview)
mListView.setAdapter(new CommonAdapter<Info>(getApplicationContext(), mInfos,R.layout.listview_item)
{
@Override
public void convert(ViewHolder viewHolder, Info item) {
viewHolder.setText(R.id.text_item,item.getTitle())
viewHolder.setImageResource(R.id.image_item,item.getImageView())
viewHolder.setText(R.id.textview2,item.getTime())
}
})
String result= HttpUtils.doGetAsyn("http://www.weather.com.cn/data/sk/101010100.html",null)
Log.d("123",result)
}
}
public abstract class CommonAdapter <T> extends BaseAdapter {
protected LayoutInflater inflater;
protected Context mContext;
protected List<T> mDatas;
protected final int mItemLayoutId;
public CommonAdapter(Context mContext, List<T> mDatas, int mItemLayoutId) {
this.mItemLayoutId = mItemLayoutId;
this.inflater=LayoutInflater.from(mContext);
this.mContext = mContext;
this.mDatas = mDatas;
}
@Override
public int getCount() {
return mDatas.size();
}
@Override
public T getItem(int i) {
return mDatas.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final ViewHolder viewHolder = getViewHolder(position, convertView, parent);
convert(viewHolder, getItem(position));
return viewHolder.getConvertView();
}
public abstract void convert(ViewHolder viewHolder, T item);
private ViewHolder getViewHolder(int position, View convertView,
ViewGroup parent)
{
return ViewHolder.get(mContext, convertView, parent, mItemLayoutId, position);
}
}
public class ViewHolder {
private int mPosition;
private final SparseArray<View> mViews;
private View mConvertView;
private ViewHolder(Context context, ViewGroup parent, int layoutId, int position)
{
this.mViews = new SparseArray<View>();
mConvertView = LayoutInflater.from(context).inflate(layoutId, parent, false);
mConvertView.setTag(this);
}
/**
* 拿到一个ViewHolder对象
* @param context
* @param convertView
* @param parent
* @param layoutId
* @param position
* @return
*/
public static ViewHolder get(Context context, View convertView,
ViewGroup parent, int layoutId, int position)
{
if (convertView == null)
{
return new ViewHolder(context, parent, layoutId, position);
}
return (ViewHolder) convertView.getTag();
}
/**
* 通过控件的Id获取对于的控件,如果没有则加入views
* @param viewId
* @return
*/
public <T extends View> T getView(int viewId)
{
View view = mViews.get(viewId);
if (view == null)
{
view = mConvertView.findViewById(viewId);
mViews.put(viewId, view);
}
return (T) view;
}
public View getConvertView()
{
return mConvertView;
}
/**
* 为TextView设置字符串
*
* @param viewId
* @param text
* @return
*/
public ViewHolder setText(int viewId, String text)
{
TextView view = getView(viewId);
view.setText(text);
return this;
}
/**
* 为ImageView设置图片
*
* @param viewId
* @param drawableId
* @return
*/
public ViewHolder setImageResource(int viewId, int drawableId)
{
ImageView view = getView(viewId);
view.setImageResource(drawableId);
return this;
}
/**
* 为ImageView设置图片
*
* @param viewId
* @param drawableId
* @return
*/
public ViewHolder setImageBitmap(int viewId, Bitmap bm)
{
ImageView view = getView(viewId);
view.setImageBitmap(bm);
return this;
}
/**
* 为ImageView设置图片
*
* @param viewId
* @param drawableId
* @return
*/
public int getPosition()
{
return mPosition;
}
}
public class Info {
private String title;
private String time;
private int imageView;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public int getImageView() {
return imageView;
}
public void setImageView(int imageView) {
this.imageView = imageView;
}
}