package com.bwie.yuekao01.fragment; import android.os.AsyncTask; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import com.bwie.yuekao01.R; import com.bwie.yuekao01.bean.MenuInfo; import com.google.gson.Gson; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import java.util.List; /** * Created by Shadow on 2017/7/21. */ public class GnFragment extends Fragment { private View view; private ListView lv; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = inflater.inflate(R.layout.fragment02, container, false); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); lv = (ListView) view.findViewById(R.id.lv); loadData("http://apis.juhe.cn/cook/query.php?menu=%E9%BB%84%E7%84%96%E9%B8%A1&key=85ccc6561e8247986f378b20ef34589a"); } private void loadData(String path) { new AsyncTask<String, Void, String>() { @Override protected String doInBackground(String... params) { String url = params[0]; try { HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection(); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); connection.setRequestMethod("GET"); if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) { InputStream is = connection.getInputStream(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); int len = 0; byte[] bytes = new byte[1024]; while ((len = is.read(bytes)) != -1) { baos.write(bytes, 0, len); } is.close(); baos.close(); System.out.println("*******************************黄焖鸡" + baos.toString()); return baos.toString(); } } catch (IOException e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); if (s != null) { Gson gson = new Gson(); MenuInfo menuInfo = gson.fromJson(s, MenuInfo.class); List<MenuInfo.ResultBean.DataBean> list = menuInfo.getResult().getData(); Myadapter myadapter = new Myadapter(list); lv.setAdapter(myadapter); } } }.execute(path); } class Myadapter extends BaseAdapter { List<MenuInfo.ResultBean.DataBean> list; DisplayImageOptions options; public Myadapter(List<MenuInfo.ResultBean.DataBean> list) { this.list = list; options = new DisplayImageOptions.Builder() .showImageOnFail(R.mipmap.ic_launcher) .cacheInMemory(true) .cacheOnDisk(true) .build(); } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public int getViewTypeCount() { return 2; } @Override public int getItemViewType(int position) { if (position % 2 == 0) { return 0; } else { return 1; } } @Override public View getView(int position, View convertView, ViewGroup parent) { int type = getItemViewType(position); ViewHolder holder = null; ViewHolder2 holder2 = null; switch (type) { case 0: if (convertView == null) { holder = new ViewHolder(); convertView = convertView.inflate(getActivity(), R.layout.listview_item, null); holder.imageview = (ImageView) convertView.findViewById(R.id.ivIcon); holder.textview = (TextView) convertView.findViewById(R.id.tvContent); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } ImageLoader.getInstance().displayImage(list.get(position).getAlbums().get(0), holder.imageview, options); holder.textview.setText(list.get(position).getTitle()); break; case 1: if (convertView == null) { holder2 = new ViewHolder2(); convertView = convertView.inflate(getActivity(), R.layout.listview_item2, null); holder2.imageview2 = (ImageView) convertView.findViewById(R.id.ivIcon); holder2.textview2 = (TextView) convertView.findViewById(R.id.tvContent); convertView.setTag(holder2); } else { holder2 = (ViewHolder2) convertView.getTag(); } ImageLoader.getInstance().displayImage(list.get(position).getAlbums().get(0), holder2.imageview2, options); holder2.textview2.setText(list.get(position).getTitle()); break; } return convertView; } class ViewHolder { ImageView imageview; TextView textview; } class ViewHolder2 { ImageView imageview2; TextView textview2; } } }
ListView多条目加载以及优化
最新推荐文章于 2018-12-05 10:58:20 发布