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;
}
}
}