package com.example.day10_xlistview; import android.os.AsyncTask; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import com.google.gson.Gson; import com.limxing.xlistview.view.XListView; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import java.util.List; public class MainActivity extends AppCompatActivity { private XListView xlv; private boolean flag = false; int indax = 1; ImageLoader loader; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //ImageLoader方法 ImageLoaderConfiguration configuration = ImageLoaderConfiguration.createDefault(MainActivity.this); ImageLoader.getInstance().init(configuration); xlv = (XListView) findViewById(R.id.xlv); //加载玩消失 xlv.setPullLoadEnable(true); //Xlistviwe监听事件 xlv.setXListViewListener(new XListView.IXListViewListener() { @Override public void onRefresh() { //下拉刷新 flag = false; indax--; //第一条数据就加载5条 if (indax == 1){ indax = 5; } //获取网络请求 getdata("http://apis.juhe.cn/cook/query.php",indax+"",10+""); //加载完成关闭 xlv.stopRefresh(true); } @Override public void onLoadMore() { //上啦加载 flag = true; indax--; if (indax == 1){ indax =5; } getdata("http://apis.juhe.cn/cook/query.php",indax+"",10+""); xlv.stopLoadMore(); } }); //网络请求接口 try { getdata("http://apis.juhe.cn/cook/query.php",indax+"",10+""); } catch (Exception e) { e.printStackTrace(); } } public void getdata(String data,String pn,String rn){ //异步 new AsyncTask<String,Void,String>(){ @Override protected void onPostExecute(String s) { super.onPostExecute(s); //Gson方法 Gson gson = new Gson(); //Bean数据对象 Bean bean = gson.fromJson(s, Bean.class); List<Bean.ResultBean.DataBean.StepsBean> list = bean.getResult().getData().get(0).getSteps(); //绑定适配器 Youhua youhua = new Youhua(list); xlv.setAdapter(youhua); } @Override protected String doInBackground(String... strings) { try { String url = strings[0]; String pn = strings[1]; String rn = strings[2]; // HttpURL方法 HttpURLConnection connection= (HttpURLConnection) new URL(url).openConnection(); //POST请求 connection.setRequestMethod("POST"); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); OutputStream os = connection.getOutputStream(); //网络请求key os.write(("key=81921c6270f37eeec75be4081bd61e91&menu=" +URLEncoder.encode("秘制红烧肉","utf-8")+"&pn="+pn+"&rn"+rn).getBytes()); os.flush(); int code = connection.getResponseCode(); if (code==200){ InputStream is = connection.getInputStream(); String shuju = Jiexi.shuju(is); //返回数据 System.out.println("=================="+shuju); return shuju; } } catch (Exception e) { e.printStackTrace(); } return null; } }.execute(data,pn,rn); } //适配器 class Youhua extends BaseAdapter{ //list内部类 List<Bean.ResultBean.DataBean.StepsBean> list; public Youhua(List<Bean.ResultBean.DataBean.StepsBean> list) { this.list = list; loader = ImageLoader.getInstance(); } @Override public int getCount() { if (list !=null){ return list.size(); } return 0; } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return 0; } @Override public View getView(int postion, View contentview, ViewGroup viewGroup) { if (contentview == null){ contentview = View.inflate(MainActivity.this,R.layout.youhua,null); } ImageView im =(ImageView) contentview.findViewById(R.id.im); TextView tv = (TextView) contentview.findViewById(R.id.tv1); tv.setText(list.get(postion).getStep()); loader.displayImage(list.get(postion).getImg(),im); return contentview; } } }
Xlistview(异步、Imagerloader、POST)
最新推荐文章于 2021-03-25 15:23:36 发布
本文介绍了一个使用XListView的示例应用,通过异步任务实现数据的网络请求及更新,展示了如何设置XListView的刷新和加载更多功能,并自定义了适配器来展示数据。
257

被折叠的 条评论
为什么被折叠?



