public class MainActivity extends AppCompatActivity { private ListView lv; private List<Bean.ResultBean.DataBean> list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv = (ListView) findViewById(R.id.listview); try { // jiexi("http://apis.juhe.cn/cook/query?key=900eb2e99f3c7b21f3914aefa914a327&menu="+ URLEncoder.encode("西红柿","utf-8")+"" ); jiexi("http://apis.juhe.cn/cook/query?key=900eb2e99f3c7b21f3914aefa914a327&menu=%E8%A5%BF%E7%BA%A2%E6%9F%BF"); } catch (Exception e) { e.printStackTrace(); } } public void jiexi(final String path){ new AsyncTask<String ,Void ,String >(){ @Override protected void onPostExecute(String s) { if (s!=null){ Gson gson=new Gson(); Bean bean = gson.fromJson(s, Bean.class); List<Bean.ResultBean.DataBean> list = bean.getResult().getData(); MyBaseadapter adapter=new MyBaseadapter(MainActivity.this,list); lv.setAdapter(adapter); } } @Override protected String doInBackground(String... params) { try { URL url=new URL(params[0]); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setReadTimeout(3000); connection.setConnectTimeout(3000); int code = connection.getResponseCode(); if (code==200){ InputStream is = connection.getInputStream(); return StreamTools.readFromNetWork(is); } } catch (Exception e) { e.printStackTrace(); } return null; } }.execute(path); } }
以上是MainActivity里面的内容
public class MyBaseadapter extends BaseAdapter { private Context context; private List<Bean.ResultBean.DataBean> list; public MyBaseadapter(Context context, List<Bean.ResultBean.DataBean> list) { this.context=context; this.list=list; } @Override public int getCount() { return list!=null?list.size():0; } @Override public Object 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) { convertView=View.inflate(context,R.layout.item,null); TextView tv= (TextView) convertView.findViewById(R.id.tv); ImageView image= (ImageView) convertView.findViewById(R.id.image); //ImageLoader.getInstance().displayImage(dataBeanList.get(position).getAlbums().get(0), // ivIcon,MyApplication.getDisplayImageOptions()); tv.setText(list.get(position).getSteps().get(0).getStep()); ImageLoader.getInstance().displayImage(list.get(position).getSteps().get(0).getImg(),image,MyAppliction.getDiskImageoptoins()); return convertView; } }
以上是适配器
1 public class MyAppliction extends Application{ 2 @Override 3 public void onCreate() { 4 super.onCreate(); 5 // String s = Environment.getExternalStorageDirectory() + "/qqq"; 6 // File file=new File(s); 7 ImageLoaderConfiguration config=new ImageLoaderConfiguration.Builder(this) 8 .threadPriority(100) 9 .threadPoolSize(3) 10 .memoryCacheExtraOptions(200,200) 11 .memoryCacheSize(2*1024*1024) 12 // .diskCache(new UnlimitedDiskCache(file)) 13 .diskCacheSize(50*1024*1024) 14 .diskCacheFileNameGenerator(new Md5FileNameGenerator()) 15 .build(); 16 ImageLoader.getInstance().init(config); 17 18 } 19 public static DisplayImageOptions getDiskImageoptoins(){ 20 DisplayImageOptions options=new DisplayImageOptions.Builder() 21 .showImageForEmptyUri(R.mipmap.ic_launcher) 22 .showImageOnFail(R.mipmap.ic_launcher) 23 .showImageOnLoading(R.mipmap.ic_launcher) 24 .cacheInMemory(true) 25 // .cacheOnDisk(true) 26 .build(); 27 return options; 28 } 29 }
以上是固定Imageloader类
1 public static String readFromNetWork(InputStream is){ 2 3 4 try { 5 6 ByteArrayOutputStream baos = new ByteArrayOutputStream(); 7 8 byte[] buffer = new byte[1024]; 9 int len = 0; 10 while ((len = is.read(buffer)) != -1){ 11 12 baos.write(buffer,0,len); 13 14 } 15 16 is.close(); 17 baos.close(); 18 return baos.toString(); 19 20 } catch (Exception e) { 21 e.printStackTrace(); 22 } 23 24 return null; 25 26 }
以上是gson解析类