import android.os.AsyncTask; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; import com.google.gson.Gson; import com.hgz.test.myxlistview.bean.Info; import com.hgz.test.myxlistview.utils.StreamTools; import com.limxing.xlistview.view.XListView; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.List; public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener { private boolean flag; private int index = 1; private XListView lv; private MyAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv = (XListView) findViewById(R.id.lv); lv.setPullLoadEnable(true); lv.setXListViewListener(this); getData("http://apis.juhe.cn/cook/query.php", index + "", 10 + ""); } //当下拉刷新的时候,会执行 @Override public void onRefresh() { ++index; getData("http://apis.juhe.cn/cook/query.php", index + "", 10 + ""); flag=true; //刷新成功之后,将下拉刷新进度回弹 lv.stopRefresh(true); } //当上拉加载更多的是后,会被执行 @Override public void onLoadMore() { ++index; getData("http://apis.juhe.cn/cook/query.php", index + "", 10 + ""); flag=false; //停止加载更多 lv.stopLoadMore(); } private class MyAdapter extends BaseAdapter { private List<Info.ResultBean.DataBean> result; public MyAdapter(List<Info.ResultBean.DataBean> result){ this.result=result; } private void loadMore(List<Info.ResultBean.DataBean> data,boolean flag) { for (Info.ResultBean.DataBean datas : data) { if (flag){ result.add(0,datas); }else{ result.add(datas); } } } @Override public int getCount() { return result.size(); } @Override public Object getItem(int i) { return result.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { if (view == null) { view = View.inflate(MainActivity.this, R.layout.listview_items, null); } TextView itemText = view.findViewById(R.id.itemText); itemText.setText(result.get(i).getTitle()); return view; } } private void getData(String path, final String pn, final String rn) { new AsyncTask<String, Void, String>() { @Override protected void onPostExecute(String s) { super.onPostExecute(s); if (s == null) return; ; Gson gson = new Gson(); Info info = gson.fromJson(s, Info.class); List<Info.ResultBean.DataBean> result = info.getResult().getData(); if (adapter == null) { adapter = new MyAdapter(result); lv.setAdapter(adapter); } else { adapter.loadMore(result,flag); adapter.notifyDataSetChanged(); } } @Override protected String doInBackground(String... strings) { try { String string = strings[0]; URL url = new URL(string); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); connection.setReadTimeout(5000); connection.setConnectTimeout(5000); OutputStream os = connection.getOutputStream(); os.write(("key=1fe0aebec3396c977560e16f14613413&pn=" + pn + "&rn=" + rn + "&menu=红烧肉").getBytes()); os.flush(); int code = connection.getResponseCode(); if (code == 200) { InputStream is = connection.getInputStream(); String json = StreamTools.getDatas(is); System.out.println(json.toString()); return json; } } catch (Exception e) { e.printStackTrace(); } return null; } }.execute(path, pn, rn); } }
XListview(导入第三方module)
最新推荐文章于 2021-02-04 16:57:19 发布