Listview&Adapter&SharedPreferences&AsyncTask

这几天因为要用到Listview以及加载图片,从网上查了下资料,写了个demo,但是从网络下载的图片没有缓存到本地,有待修正

下面贴上代码,供大家学习


IMageTaskUtil.java多任务处理图片的加载


package com.loulijun.utils;


import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;


import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.widget.ImageView;


public class ImageTaskUtil extends AsyncTask<String, Void, Bitmap> {


private ImageView iv;


public ImageTaskUtil(ImageView iv) {
this.iv = iv;
}


@Override
protected Bitmap doInBackground(String... params) {
// TODO Auto-generated method stub


String imgUrl = params[0];


try {


URL url = new URL(imgUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
InputStream in = conn.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(in);
if (bitmap != null) {
return bitmap;
}


} catch (Exception e) {
// TODO: handle exception
}
return null;
}


@Override
protected void onPostExecute(Bitmap result) {
// TODO Auto-generated method stub
super.onPostExecute(result);


if (result != null) {
iv.setImageBitmap(result);
}
}


@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
}


}

commonebean.java  Listview中单个item的model


package com.loulijun.bean;


public class CommondBean implements java.lang.Comparable {
private String UserImg;
private String UserName;
private String UserDetail;
private String Good;
private String Poor;
private String Hot;
private String Share;


public CommondBean(String userImg, String userName, String userDetail,
String good, String poor, String hot, String share) {


UserImg = userImg;
UserName = userName;
UserDetail = userDetail;
Good = good;
Poor = poor;
Hot = hot;
Share = share;
}


public String getUserImg() {
return UserImg;
}


public void setUserImg(String userImg) {
UserImg = userImg;
}


public String getUserName() {
return UserName;
}


public void setUserName(String userName) {
UserName = userName;
}


public String getUserDetail() {
return UserDetail;
}


public void setUserDetail(String userDetail) {
UserDetail = userDetail;
}


public String getGood() {
return Good;
}


public void setGood(String good) {
Good = good;
}


public String getPoor() {
return Poor;
}


public void setPoor(String poor) {
Poor = poor;
}


public String getHot() {
return Hot;
}


public void setHot(String hot) {
Hot = hot;
}


public String getShare() {
return Share;
}


public void setShare(String share) {
Share = share;
}


@Override
public int compareTo(Object another) {
// TODO Auto-generated method stub
return 0;
}


}


MyAdapter.java 自定义Adapter容器


package com.loulijun.adapter;


import java.util.List;


import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;


import com.loulijun.bean.CommondBean;
import com.loulijun.logindemo.R;
import com.loulijun.utils.ImageTaskUtil;


public class MyAdapter extends BaseAdapter {


private Context context;


private List<CommondBean> commondBeans;


public MyAdapter(Context context, List<CommondBean> commondBeans) {


this.context = context;
this.commondBeans = commondBeans;
}


@Override
public int getCount() {
// TODO Auto-generated method stub
return commondBeans.size();
}


@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return commondBeans.get(position);
}


@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}


@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub


View view = convertView;


ViewHolder holder = null;


if (view == null) {
view = LayoutInflater.from(context).inflate(
R.layout.item_listview_commond, null);


holder = new ViewHolder();
view.setTag(holder);


holder.user_img = (ImageView) view.findViewById(R.id.userimg);
holder.user_detail = (TextView) view.findViewById(R.id.detail);
holder.user_name = (TextView) view.findViewById(R.id.name);
holder.user_good = (Button) view.findViewById(R.id.good);
holder.user_good.setOnClickListener(new View.OnClickListener() {


@Override
public void onClick(View v) {
// TODO Auto-generated method stub


Toast.makeText(context, "32个赞!", Toast.LENGTH_SHORT).show();


}
});
holder.user_poor = (Button) view.findViewById(R.id.poor);
holder.user_poor.setOnClickListener(new View.OnClickListener() {


@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(context, "贬低一个!", Toast.LENGTH_SHORT).show();
}
});
holder.user_hot = (Button) view.findViewById(R.id.hot);
holder.user_hot.setOnClickListener(new View.OnClickListener() {


@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(context, "更加火爆!", Toast.LENGTH_SHORT).show();
}
});
holder.user_share = (Button) view.findViewById(R.id.share);
holder.user_share.setOnClickListener(new View.OnClickListener() {


@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(context, "分享成功!", Toast.LENGTH_SHORT).show();
}
});
holder.good = (TextView) view.findViewById(R.id.goodtext);
holder.poor = (TextView) view.findViewById(R.id.poortext);
holder.hot = (TextView) view.findViewById(R.id.hottext);
holder.share = (TextView) view.findViewById(R.id.sharetext);


} else {
holder = (ViewHolder) convertView.getTag();
}

ImageTaskUtil imageTask = new ImageTaskUtil(holder.user_img);
imageTask.execute(commondBeans.get(position).getUserImg());


holder.user_detail.setText(commondBeans.get(position).getUserDetail());
holder.user_name.setText(commondBeans.get(position).getUserName());
holder.good.setText(commondBeans.get(position).getGood());
holder.poor.setText(commondBeans.get(position).getPoor());
holder.hot.setText(commondBeans.get(position).getHot());
holder.share.setText(commondBeans.get(position).getShare());


return view;
}


static class ViewHolder {
ImageView user_img;
TextView user_name;
TextView user_detail;
TextView good;
TextView poor;
TextView hot;
TextView share;
Button user_good;
Button user_poor;
Button user_hot;
Button user_share;


}


}

MainActivity.java 主activity


package com.loulijun.activity;


import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;


import com.loulijun.adapter.MyAdapter;
import com.loulijun.bean.CommondBean;
import com.loulijun.logindemo.R;


public class MainActivity extends LoginDemoActivity implements OnClickListener {


private TextView home, name, detail;
private ImageView wangluotupian, userimg;


String url = "http://s16.sinaimg.cn/orignal/89429f6dhb99b4903ebcf&690";
private ListView personal_listview;
private MyAdapter myAdapter;
private List<CommondBean> commondBeans;
private List<Map<String, Object>> commondList = new ArrayList<Map<String, Object>>();
private String m_name, m_detail, m_good, m_poor, m_hot, m_share;


@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.home);


initView();


initData();


}


private void initView() {
this.home = (TextView) MainActivity.this.findViewById(R.id.home);
this.name = (TextView) MainActivity.this.findViewById(R.id.home);
this.detail = (TextView) MainActivity.this.findViewById(R.id.detail);


this.wangluotupian = (ImageView) this.findViewById(R.id.wangluotupian);
this.userimg = (ImageView) this.findViewById(R.id.userimg);


}


private void initData() {
this.home.setText("用户id:" + userBean.getId() + userBean.getName());


Bitmap bitmap = getHttpBitmap(url);
this.wangluotupian.setImageBitmap(bitmap);


personal_listview = (ListView) MainActivity.this
.findViewById(R.id.personal_listview);
commondBeans = new ArrayList<CommondBean>();
CommondBean[] commondArray = new CommondBean[] {
new CommondBean(
"http://s16.sinaimg.cn/orignal/89429f6dhb99b4903ebcf&690",
"笑谈花落", "一句话说过你看过的星爷的电影,我先来,人要是没有理想和咸鱼有什么区别", "1", "2",
"3", "4"),
new CommondBean("http://img3.douban.com/spic/s27078194.jpg", "笑谈花落",
"一句话说过你看过的星爷的电影,我先来,人要是没有理想和咸鱼有什么区别", "5", "6", "7",
"8"),
new CommondBean("http://img5.douban.com/spic/s3595798.jpg", "笑谈花落",
"一句话说过你看过的星爷的电影,我先来,人要是没有理想和咸鱼有什么区别", "9", "1", "2",
"3"),
new CommondBean("http://img5.douban.com/spic/s2650727.jpg", "笑谈花落",
"一句话说过你看过的星爷的电影,我先来,人要是没有理想和咸鱼有什么区别", "4", "5", "6",
"7"),
new CommondBean("http://img3.douban.com/spic/s1400630.jpg", "笑谈花落",
"一句话说过你看过的星爷的电影,我先来,人要是没有理想和咸鱼有什么区别", "8", "9", "1",
"2") };


for (int i = 0; i < commondArray.length; i++) {
CommondBean commondBeans = new CommondBean(null, null, null,
i + "", i + "", i + "", i + "");


String murl = commondArray[i].getUserImg();
String mname = commondArray[i].getUserName();
String mdetail = commondArray[i].getUserDetail();
String mgood = commondArray[i].getGood();
String mpoor = commondArray[i].getPoor();
String mhot = commondArray[i].getHot();
String mshare = commondArray[i].getShare();


Bitmap mbitmap = getHttpBitmap(murl);


Map<String, Object> map = new HashMap<String, Object>();
map.put("m_url", mbitmap);
map.put("m_name", mname);
map.put("m_detail", mdetail);
map.put("m_good", mgood);
map.put("m_poor", mpoor);
map.put("m_hot", mhot);
map.put("m_share", mshare);
commondList.add(map);


}
Arrays.sort(commondArray);
commondBeans = Arrays.asList(commondArray);


myAdapter = new MyAdapter(MainActivity.this, commondBeans);
personal_listview.setAdapter(myAdapter);
}


private void Onclick(View v) {
switch (v.getId()) {
case R.id.good:


break;
case R.id.poor:


break;
case R.id.hot:


break;
case R.id.share:


break;


default:
break;
}
}


}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值