问题描述
- listVew显示从mySql中获取的Jason数组里面的图片
-
图片存储在本地,在mysql中存储的是图片的本地地址,已经封装成json,传到了客户端,怎么才能显示在listView里面
解决方案
private void findMeat() {
// TODO Auto-generated method stub
new Thread(new Runnable() {
public void run() {
String url="http://220.167.40.78/HotPot/servlet/MeatServlet?";
String data="dishes_kind="+"荤菜";
final String state=HttpAccessUtil.Get(url, data);//state是服务器传过来的Jason数组
runOnUiThread(new Runnable() {
@Override
public void run() {
try {
List> jsonList=JsonToMap.getList(state);//将Jason转换成list
final SimpleAdapter adapter =new SimpleAdapter(MeatActivity.this,jsonList , R.layout.meat_item,new String[]{
"img","name","price"}, new int[]{R.id.dishes_picture,R.id.dishes_name,R.id.dishes_price});
lv_meat.setAdapter(adapter);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
}).start();
解决方案二:
public class JsonToMap {
public static Map<String,String> getMap(String jsonString){
JSONObject jsonObject;
try {
jsonObject=new JSONObject(jsonString);
String img = jsonObject.getString("dishes_picture");
String name = jsonObject.getString("dishes_name");
String price = jsonObject.getString("dishes_price");
Map<String,String> valueMap=new HashMap<String, String>();
valueMap.put("img", img);
valueMap.put("name", name);
valueMap.put("price", price);
return valueMap;
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public static List<Map<String, String>> getList(String jsonString){
List<Map<String, String>> list=null;
try {
JSONArray jsonArray=new JSONArray(jsonString);
JSONObject jsonObject;
list=new ArrayList<Map<String,String>>();
for(int i=0;i<jsonArray.length();i++){
jsonObject=jsonArray.getJSONObject(i);
list.add(getMap(jsonObject.toString()));
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
}