上拉

来源:互联网 发布:finally java 编辑:程序博客网 时间:2024/04/26 21:40
private XListView lv;
    private int startNum=1;
    private String pathSub="http://www.93.gov.cn/93app/data.do?channelId=1&startNum=";
    private String path=pathSub+startNum;
    private MyJson fromJson;
    private ArrayList<MyData> al=new ArrayList<MyData>();
    private MyAdapter adapter;
    private MyListView myListView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        //找控件
        lv = (XListView) findViewById(R.id.lv);
        
        //获取数据
        getNetData();
        
        
    }

    private void getNetData() {
        new  AsyncTask<Void, Void, Void>(){



            @Override  //请求网络数据
            protected Void doInBackground(Void... params) {
                try {
                    HttpURLConnection conn = (HttpURLConnection) new URL(path).openConnection();
                    conn.setConnectTimeout(5000);
                    if (200==conn.getResponseCode()) {
                        fromJson = new Gson().fromJson(new InputStreamReader(conn.getInputStream()), MyJson.class);
                        al.addAll(fromJson.data);
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return null;
            }
            
        protected void onPostExecute(Void result) {
            if (adapter==null) {
                adapter = new MyAdapter();
                myListView = new MyListView(lv,adapter) {
                    @Override
                    public void shuaXin() {
                        al.clear();
                        startNum=1;
                        path=pathSub+startNum;
                        getNetData();
                    }
                    
                    @Override
                    public void jiaZai() {
                        startNum++;
                        path=pathSub+startNum;
                        getNetData();
                    }
                };
                
            }else{
                adapter.notifyDataSetChanged();
                myListView.onOK();
            }
            
        };
        
        }.execute();
    }
    
   
0 0