package a16.erin.unit14_xlist_http;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import com.google.gson.Gson;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener{
private XListView listView;
private int page=1;//从第一页开始加载;
private int pageSize=15;//每一页加载的数量
private Gson gson=new Gson();
private MyAdapter adapter;
private List<DataTotalBean.DataBean> value =new ArrayList<>();
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
int what=msg.what;
if(what==1){
String[] datas=(String[])msg.obj;
if(datas!=null&&datas.length>1){
String result=datas[0];
String isadd=datas[1];
boolean isAdd=Boolean.parseBoolean(isadd);
DataTotalBean bean=gson.fromJson(result,DataTotalBean.class);
List<DataTotalBean.DataBean> list=bean.getData();
System.out.println(result);
if(list!=null){
if(!isAdd){//更新数据
value.clear();
}
value.addAll(list);
adapter.updateData(value);
//数据从网络取回成功,停止加载进度条;
listView.stopLoadMore();
listView.stopRefresh();
}
}
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView=(XListView)findViewById(R.id.mylist);
listView.setXListViewListener(this);
listView.setPullLoadEnable(true);
listView.setPullRefreshEnable(true);
adapter=new MyAdapter(MainActivity.this);
listView.setAdapter(adapter);
getDataFromHttp(false,"GET");
}
//从网络获取数据
private void getDataFromHttp(final boolean isadd , final String requestMethod){
new Thread(){
@Override
public void run() {
super.run();
try {
String path="http://shouyoutoutiao.app.17wanba.com/toutiao/get_list";
//value feiqi
String value="key=59a7a07262e92d09a63ec1a23beb1a2c&area="+ URLEncoder.encode("北京","utf-8")+"&page="+page+"&pagesize="+pageSize;
if(requestMethod.equals("GET")){
path=path+"?"+value;
}
URL url=new URL(path);
HttpURLConnection connection=(HttpURLConnection) url.openConnection();
//设置请求方式
connection.setRequestMethod(requestMethod);
if(requestMethod.equals("POST")){
connection.setDoOutput(true);
OutputStream os=connection.getOutputStream();
os.write(value.getBytes());
}
int code=connection.getResponseCode();
System.out.println(code+" ******************");
if(code==HttpURLConnection.HTTP_OK){
InputStream inputStream=connection.getInputStream();
String str="";
String result="";
BufferedReader reader=new BufferedReader(new InputStreamReader(inputStream));
while((str=reader.readLine())!=null){
result+=str;
}
Message msg=Message.obtain();
msg.obj=new String[]{result,isadd+""};
msg.what=1;
handler.sendMessage(msg);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
}
@Override
public void onRefresh() {
page=1;
getDataFromHttp(false,"GET");
}
@Override
public void onLoadMore() {
page++;
getDataFromHttp(true,"GET");
}
}
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import com.google.gson.Gson;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener{
private XListView listView;
private int page=1;//从第一页开始加载;
private int pageSize=15;//每一页加载的数量
private Gson gson=new Gson();
private MyAdapter adapter;
private List<DataTotalBean.DataBean> value =new ArrayList<>();
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
int what=msg.what;
if(what==1){
String[] datas=(String[])msg.obj;
if(datas!=null&&datas.length>1){
String result=datas[0];
String isadd=datas[1];
boolean isAdd=Boolean.parseBoolean(isadd);
DataTotalBean bean=gson.fromJson(result,DataTotalBean.class);
List<DataTotalBean.DataBean> list=bean.getData();
System.out.println(result);
if(list!=null){
if(!isAdd){//更新数据
value.clear();
}
value.addAll(list);
adapter.updateData(value);
//数据从网络取回成功,停止加载进度条;
listView.stopLoadMore();
listView.stopRefresh();
}
}
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView=(XListView)findViewById(R.id.mylist);
listView.setXListViewListener(this);
listView.setPullLoadEnable(true);
listView.setPullRefreshEnable(true);
adapter=new MyAdapter(MainActivity.this);
listView.setAdapter(adapter);
getDataFromHttp(false,"GET");
}
//从网络获取数据
private void getDataFromHttp(final boolean isadd , final String requestMethod){
new Thread(){
@Override
public void run() {
super.run();
try {
String path="http://shouyoutoutiao.app.17wanba.com/toutiao/get_list";
//value feiqi
String value="key=59a7a07262e92d09a63ec1a23beb1a2c&area="+ URLEncoder.encode("北京","utf-8")+"&page="+page+"&pagesize="+pageSize;
if(requestMethod.equals("GET")){
path=path+"?"+value;
}
URL url=new URL(path);
HttpURLConnection connection=(HttpURLConnection) url.openConnection();
//设置请求方式
connection.setRequestMethod(requestMethod);
if(requestMethod.equals("POST")){
connection.setDoOutput(true);
OutputStream os=connection.getOutputStream();
os.write(value.getBytes());
}
int code=connection.getResponseCode();
System.out.println(code+" ******************");
if(code==HttpURLConnection.HTTP_OK){
InputStream inputStream=connection.getInputStream();
String str="";
String result="";
BufferedReader reader=new BufferedReader(new InputStreamReader(inputStream));
while((str=reader.readLine())!=null){
result+=str;
}
Message msg=Message.obtain();
msg.obj=new String[]{result,isadd+""};
msg.what=1;
handler.sendMessage(msg);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
}
@Override
public void onRefresh() {
page=1;
getDataFromHttp(false,"GET");
}
@Override
public void onLoadMore() {
page++;
getDataFromHttp(true,"GET");
}
}