PullToRefreshListView

来源:互联网 发布:聂风入魔知乎 编辑:程序博客网 时间:2024/06/02 20:20
public class MainActivity extends AppCompatActivity {    private Myadapter myadapter;    protected PullToRefreshListView pull_listview;    private ImageView img;    private DrawerLayout dv;    private String urlpath="http://www.93.gov.cn/93app/data.do?channelId=0&startNum=0";    private int p=1;    private int q=0;    private String url=urlpath+q;    private List<Bean.DataBean> data=new ArrayList<>();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();        boolean conn = Utils.isConn(MainActivity.this);        if (conn) {            MyTask myTask = new MyTask();            myTask.execute(url);        } else {            Utils.setNetworkMethod(MainActivity.this);        }        shuxi();    }    private void shuxi() {        pull_listview.setMode(PullToRefreshListView.Mode.BOTH);        ILoadingLayout startLabels = pull_listview.getLoadingLayoutProxy(true, false);        startLabels.setPullLabel("下拉刷新...");        startLabels.setRefreshingLabel("正在载入...");// 刷新时        startLabels.setReleaseLabel("放开刷新...");// 下来达到一定距离时,显示的提示        ILoadingLayout endLabels = pull_listview.getLoadingLayoutProxy(false, true);        endLabels.setPullLabel("上拉刷新...");// 刚下拉时,显示的提示        endLabels.setRefreshingLabel("正在载入...");// 刷新时        endLabels.setReleaseLabel("放开刷新...");// 下来达到一定距离时,显示的提示       pull_listview.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {           @Override           public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {               p=1;               q=0;               url=urlpath+q;               MyTask myTask = new MyTask();               myTask.execute(url);           }           @Override           public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {               p=2;               q++;               url=urlpath+q;               MyTask myTask = new MyTask();               myTask.execute(url);           }       });    }    class MyTask extends AsyncTask<String,Void,String>    {        @Override        protected String doInBackground(String... strings) {            StringBuilder builder=new StringBuilder();            try {                URL url=new URL(strings[0]);                HttpURLConnection urlConnection =(HttpURLConnection) url.openConnection();                urlConnection.setRequestMethod("GET");                urlConnection.setReadTimeout(5000);                urlConnection.setConnectTimeout(5000);                if (urlConnection.getResponseCode()==200)                {                    InputStream inputStream = urlConnection.getInputStream();                    BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));                    String str="";                    while ((str=reader.readLine())!=null)                    {                        builder.append(str);                    }                    reader.close();                }            } catch (Exception e) {                e.printStackTrace();            }            return builder.toString();        }        @Override        protected void onPostExecute(String s) {            super.onPostExecute(s);            Gson gson = new Gson();            Bean bean = gson.fromJson(s, Bean.class);            if (p==1)            {                data.clear();            }            data.addAll(bean.getData());            setAdapter();            if (p==1)            {                pull_listview.onRefreshComplete();            }            else {                pull_listview.onRefreshComplete();            }        }    }    private void initView() {        pull_listview = (PullToRefreshListView) findViewById(R.id.pull_listview);        img = (ImageView) findViewById(R.id.img);        dv = (DrawerLayout) findViewById(R.id.dv);        ListView list_view = findViewById(R.id.list_view);        List<String> list = new ArrayList<>();        for (int i = 0; i <20 ; i++) {            list.add("数据是"+i);        }        list_view.setAdapter(new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1,android.R.id.text1,list));     }   public void setAdapter() {       if (myadapter == null) {           myadapter = new Myadapter(MainActivity.this, data);           pull_listview.setAdapter(myadapter);       }       else {           myadapter.notifyDataSetChanged();       }   }}
原创粉丝点击