xlistview+Gson解析+异步

package wss.com.twoweeklianxi_02.frag;

import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.bwie.xlistviewlibrary.utils.NetWordUtils;
import com.bwie.xlistviewlibrary.view.XListView;
import com.google.gson.Gson;

import java.util.ArrayList;
import java.util.List;

import wss.com.twoweeklianxi_02.R;
import wss.com.twoweeklianxi_02.ShowBean;
import wss.com.twoweeklianxi_02.adapter.MyAdater;

public class Frag1 extends Fragment {

private String urlString="http://api.tianapi.com/meinv/?key=3304a8bc9414f97e30928b80163cf098&num=10";
private XListView xListView;
private List<ShowBean.NewslistBean> list=new ArrayList<>();
int a;
private MyAdater myAdapter;

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view =inflater.inflate(R.layout.frag01,container,false);
    //获取资源id
    xListView = view.findViewById(R.id.frag01_xlistview);
    getData(a);
    myAdapter = new MyAdater(getActivity(),list);
    xListView.setAdapter(myAdapter);
    xListView.setPullRefreshEnable(true);
    xListView.setPullLoadEnable(true);
    xListView.setXListViewListener(new XListView.IXListViewListener() {
        @Override
        public void onRefresh() {
            list.clear();
            getData(0);
            a=0;
        }

        @Override
        public void onLoadMore() {
        a++;
        getData(a);
        }
    });
    return view;
}
private void getData(int a) {
    new MyAsnTask().execute(urlString+a);
}
//异步处理数据
class MyAsnTask extends AsyncTask<String,Void,String>{

    @Override
    protected String doInBackground(String... strings) {
        return NetWordUtils.getNetjson(strings[0]);
    }
    @Override
    protected void onPostExecute(String s) {
        super.onPostExecute(s);
        Gson gson = new Gson();
        ShowBean showBean = gson.fromJson(s, ShowBean.class);
        List<ShowBean.NewslistBean> newslist = showBean.getNewslist();
        list.addAll(newslist);
        myAdapter.notifyDataSetChanged();
        getStop();
    }
}
private void getStop() {
    xListView.stopRefresh();
    xListView.stopLoadMore();
    xListView.setRefreshTime("刚刚");
}

}

猜你喜欢

转载自blog.csdn.net/weixin_43894237/article/details/84930640