这是我获取数据的代码,还有顺便问一下怎么写线程
try {
JSONObject dataJson=new JSONObject(responseString);
JSONArray data=dataJson.getJSONArray("retData");
// 创建一个List集合,List集合的元素是Map
List<Map<String, Object>> listItems =new ArrayList<Map<String, Object>>();
for (int i = 0; i < 5; i++) {
JSONObject info = data.getJSONObject(i);
Map<String, Object> listItem = new HashMap<String, Object>();
Bitmap bit= BitmapFactory.decodeFile(info.getString("img_url"));
listItem.put("title", info.getString("title"));
listItem.put("image", bit);
listItem.put("abs", info.getString("abstract"));
listItems.add(listItem);
}
// 创建一个SimpleAdapter
SimpleAdapter simpleAdapter = new SimpleAdapter(getActivity(), listItems,R.layout.news_simple_item,
new String[]{"image", "title", "abs"},
new int[]{R.id.image, R.id.title, R.id.abs});
ListView list = (ListView) view.findViewById(R.id.chat_news);
// 为ListView设置Adapter
list.setAdapter(simpleAdapter);
发错了不好意思你没这个glide的jar文件,用这个吧:
dependencies {
compile 'com.github.bumptech.glide:glide:3.6.1'
}
你这个应该是android的吧,你可以使用第三方的图片加载库glide来实现加载,非常简单,先在build.gradle的dependencies中添加
dependencies {
compile files('libs/glide-3.6.1.jar')
}
然后需要重新编译一下程序,实现下面代码就可以加载了:
Glide.with(this).load(url).asBitmap().into(imagView);
simpleAdapter.setViewBinder(new ViewBinder() {
@Override
public boolean setViewValue(View view, Object data,
String textRepresentation) {
if (view instanceof ImageView && data instanceof Bitmap) {
ImageView iv = (ImageView) view;
iv.setImageBitmap((Bitmap) data);
return true;
}
return false;
}
});
list.setAdapter(simpleAdapter);
这是网上的答案,是我的话应该会重写adapter
public class Adapter extends BaseAdapter{
private Context context;
private int itemLayoutID;
private int[] itemIds;
private List<Map<String, Object>> listItems;
public Adapter(Context context, int itemLayoutID,
int[] itemIds, List<Map<String, Object>> listItems ) {
this.context = context;
this.itemLayoutID = itemLayoutID;
this.itemIds = itemIds;
this.listItems = listItems;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return listItems.size();
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return listItems.get(arg0);
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder holder;
if (convertView == null) {
LayoutInflater layoutInflater = LayoutInflater.from(context);
convertView = layoutInflater.inflate(itemLayoutID, null);
holder = new ViewHolder();
holder.title = (TextView) convertView
.findViewById(itemIds[0]);
holder.image = (ImageView) convertView
.findViewById(itemIds[1]);
holder.abs = (TextView) convertView
.findViewById(itemIds[2]);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.title.setText((String)listItems.get(position).get("title"));
Bitmap bit = BitmapFactory.decodeFile((String)listItems.get(position).get("img_url"));
holder.image.setImageBitmap(bit);
holder.abs.setText((String)listItems.get(position).get("abs"));
return null;
}
static class ViewHolder {
public TextView title;
public ImageView image;
public TextView abs;
}
}
JSONObject dataJson=new JSONObject(responseString);
JSONArray data=dataJson.getJSONArray("retData");
// 创建一个List集合,List集合的元素是Map
List<Map<String, Object>> listItems =new ArrayList<Map<String, Object>>();
for (int i = 0; i < 5; i++) {
JSONObject info = data.getJSONObject(i);
Map<String, Object> listItem = new HashMap<String, Object>();
listItem.put("title", info.getString("title"));
listItem.put("image", info.getString("img_url"));
listItem.put("abs", info.getString("abstract"));
listItems.add(listItem);
}
Adapter adapter = new Adapter(getActivity(),R.layout.news_simple_item,
new int[]{R.id.image, R.id.title, R.id.abs}, listItems);
ListView list = (ListView) view.findViewById(R.id.chat_news);
// 为ListView设置Adapter
list.setAdapter(adapter);