PullToRefesh加 侧拉菜单

来源:互联网 发布:我的世界0.14生存js 编辑:程序博客网 时间:2024/06/03 21:32
package com.example.nm.myapplication;import android.os.AsyncTask;import android.os.Handler;import android.support.v4.widget.DrawerLayout;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.ListView;import android.widget.Toast;import com.google.gson.Gson;import com.handmark.pulltorefresh.library.PullToRefreshBase;import com.handmark.pulltorefresh.library.PullToRefreshListView;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.net.URLConnection;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity {    ListView list1;    PullToRefreshListView pull;    LinearLayout line;    DrawerLayout draw;    ImageView image;    ArrayList<com.example.nm.myapplication.bean.ResultsBean> list=new ArrayList<>();    ArrayList<String> list2=new ArrayList<>();    Adapter adapter;    int num=1,type=1;    String url="http://gank.io/api/data/Android/10/"+num;    asyn asyn;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        pull=(PullToRefreshListView) findViewById(R.id.plv);        list1=(ListView)findViewById(R.id.list1);        line=(LinearLayout) findViewById(R.id.line);        draw=(DrawerLayout) findViewById(R.id.draw);        image=(ImageView) findViewById(R.id.iamge);        list2.add("这是1");        list2.add("这是2");        list2.add("这是3");        list1.setAdapter(new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_expandable_list_item_1,list2));        list1.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                draw.closeDrawer(line);                Toast.makeText(MainActivity.this,list2.get(position),Toast.LENGTH_SHORT).show();            }        });        pull.setMode(PullToRefreshBase.Mode.BOTH);        pull.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {            @Override            public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {                num=1;                type=1;                new asyn().execute(url);            }            @Override            public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {                num++;                type=2;                new asyn().execute(url);            }        });       new asyn().execute(url);    }    class asyn extends AsyncTask<String,Void,String>{        StringBuilder builder=null;        @Override        protected String doInBackground(String... params) {            try {                URL url = new URL(params[0]);                HttpURLConnection con = (HttpURLConnection)url.openConnection();                con.setRequestMethod("GET");                con.setReadTimeout(5000);                con.setConnectTimeout(5000);                if(con.getResponseCode()==200){                    InputStream stream = con.getInputStream();                    InputStreamReader reader = new InputStreamReader(stream);                    Log.d("log","++++"+reader);                    BufferedReader buf = new BufferedReader(reader);                    String s=null;                    builder = new StringBuilder();                    while((s=buf.readLine())!=null) {                        builder.append(s);                    }                    buf.close();                }            } catch (Exception e) {                e.printStackTrace();            }            Log.d("zzz","++++"+builder.toString());            return builder.toString();        }        @Override        protected void onPostExecute(String s) {            Gson gson = new Gson();            bean bean = gson.fromJson(s, bean.class);            if(type==1){                list.clear();                list.addAll(bean.getResults());            }else{                list.addAll(bean.getResults());            }            setAdapter();            new Handler().postDelayed(new Runnable() {                @Override                public void run() {                    pull.onRefreshComplete();                }            },500);        }    }    public void setAdapter(){        if(adapter==null){            adapter = new Adapter(MainActivity.this,list);            pull.setAdapter(adapter);        }else{            adapter.notifyDataSetChanged();        }    }}
原创粉丝点击