MainActivity.java10

xiaoxiao2021-02-28  32

package com.example.myxlistviewdemo; import android.os.AsyncTask; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; import com.google.gson.Gson; import com.limxing.xlistview.view.XListView; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLEncoder; import java.util.List; public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener {     private static final String TAG = "MainActivity";     private XListView xLV;     private int index = 1;     private MyBaseAdapter adapter;     //定义个标识值 默认是false     private boolean flag;     @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);         //找控件         xLV = (XListView) findViewById(R.id.xLv);         xLV.setPullLoadEnable(true);         xLV.setXListViewListener(this);         //设置适配器         //xLV.setAdapter(new MyBaseAdapter());         getData("http://apis.juhe.cn/cook/query.php",index+"",10+"");     }     private void getData(String path,String pn,String rn){         new AsyncTask<String,Void,String>(){             @Override             protected void onPostExecute(String s) {                 super.onPostExecute(s);                 if(s == null)                     return;                 //解析                 Gson gson = new Gson();                 MenuInfo menuInfo = gson.fromJson(s,MenuInfo.class);                 List<MenuInfo.ResultBean.DataBean> data = menuInfo.getResult().getData();                 if(adapter == null){                     adapter = new MyBaseAdapter(data);                     xLV.setAdapter(adapter);                 }else{                     adapter.loadMore(data,flag);                     adapter.notifyDataSetChanged();                 }             }             @Override             protected String doInBackground(String... params) {                 try {                     //请求接口地址                     String path = params[0];                     //取出的是索引页  默认 1 开始                     String pn = params[1];                     //指定一次给我返回多少条数据                     String rn = params[2];                     URL url = new URL(path);                     HttpURLConnection connection = (HttpURLConnection) url.openConnection();                     connection.setRequestMethod("POST");                     connection.setConnectTimeout(5000);                     connection.setReadTimeout(5000);                     //post请求                     OutputStream os = connection.getOutputStream();                     os.write(("key=ff00d7339861c7fd7d5b54b16b76422a&menu="+                             URLEncoder.encode("秘制红烧肉","utf-8")+"&pn="+pn+"&rn="+rn).getBytes());                     os.flush();                     int code = connection.getResponseCode();                     if(code == 200){                         InputStream is = connection.getInputStream();                         return StreamTools.readFromNetWork(is);                     }                 } catch (Exception e) {                     e.printStackTrace();                 }                 return null;             }         }.execute(path,pn,rn);     }     //当下拉刷新的时候,会执行     @Override     public void onRefresh() {         Log.e(TAG, "onRefresh: 刷新" );         ++index;         getData("http://apis.juhe.cn/cook/query.php",index+"",10+"");         flag = true;         //刷新成功之后,将下拉刷新进度回弹         xLV.stopRefresh(true);     }     //当上拉加载更多的是后,会被执行     @Override     public void onLoadMore() {         Log.e(TAG, "onLoadMore: 加载更多");         ++index; //1,2,3         getData("http://apis.juhe.cn/cook/query.php",index+"",10+"");         flag = false;         //停止加载更多         xLV.stopLoadMore();              }     class MyBaseAdapter extends BaseAdapter{         private  List<MenuInfo.ResultBean.DataBean> data;         public MyBaseAdapter( List<MenuInfo.ResultBean.DataBean> data){             this.data = data;         }         /**          * 加载更多          */         public void loadMore(List<MenuInfo.ResultBean.DataBean> datas,boolean flag){             //新闻为例,数据要添加到最前面             for (MenuInfo.ResultBean.DataBean bean : datas) {                 //flag -> true 添加到卡面  false ->添加到末尾                 if(flag) {                     //将数据添加到最前面                     data.add(0, bean);                 }else{                     //默认将数据添加到末尾                     data.add(bean);                 }             }         }         @Override         public int getCount() {             return data != null ? data.size() : 0;         }         @Override         public Object getItem(int position) {             return data.get(position);         }         @Override         public long getItemId(int position) {             return position;         }         @Override         public View getView(int position, View convertView, ViewGroup parent) {             TextView textView = new TextView(MainActivity.this);             textView.setHeight(100);             textView.setText(data.get(position).getTags());             return textView;         }     } }
转载请注明原文地址: https://www.6miu.com/read-600214.html

最新回复(0)