xml中引用PullToRefreshListView

在xml中引用

<com.handmark.pulltorefresh.library.PullToRefreshListView  
        xmlns:ptr="http://schemas.android.com/apk/res-auto"  
        android:id="@+id/pull_refresh_list"  
        android:layout_width="fill_parent"  
        android:layout_height="fill_parent"  
        android:cacheColorHint="#00000000"  
        android:fadingEdge="none"  
        ptr:ptrDrawable="@drawable/default_ptr_rotate" 
        android:fastScrollEnabled="false"  
        android:footerDividersEnabled="false"  
        ptr:ptrMode="both"
        android:headerDividersEnabled="false"  
        android:smoothScrollbar="true" >  
    </com.handmark.pulltorefresh.library.PullToRefreshListView>

代码中,MainActivity

package com.bw.yangzhengzheng20160517;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.text.format.DateUtils;

import com.bw.asynctask.MyAsyncTask;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener2;
import com.handmark.pulltorefresh.library.PullToRefreshListView;


public class MainActivity extends Activity {

    private PullToRefreshListView pull_refresh_list;


    private Handler handler = new Handler(){
        public void handleMessage(android.os.Message msg) {

        };
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        pull_refresh_list = (PullToRefreshListView) findViewById(R.id.pull_refresh_list);
        pull_refresh_list.setOnRefreshListener(new OnRefreshListener2() {

            @Override
            public void onPullDownToRefresh(PullToRefreshBase refreshView) {

                handler.postDelayed(new Runnable() {
                    public void run() {
                        MyAsyncTask task2 = new MyAsyncTask(MainActivity.this,pull_refresh_list);
                        task2.execute("http://apis.juhe.cn/goodbook/query?key=9d6ef8c31647a206e05fcaff70527182&catalog_id=242&pn=20&rn=20&dtype=xml");
                        onLoad();
                        pull_refresh_list.onRefreshComplete();
                    }
                }, 2000);

            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase refreshView) {

                handler.postDelayed(new Runnable() {
                    public void run() {
                        MyAsyncTask task3 = new MyAsyncTask(MainActivity.this,pull_refresh_list);
                        task3.execute("http://apis.juhe.cn/goodbook/query?key=9d6ef8c31647a206e05fcaff70527182&catalog_id=242&pn=30&rn=20&dtype=xml");
                        onLoad();
                        pull_refresh_list.onRefreshComplete();
                    }
                }, 2000);

            }
        });
    }

    public void requestData() {
        MyAsyncTask task = new MyAsyncTask(this,pull_refresh_list);
        task.execute("http://apis.juhe.cn/goodbook/query?key=9d6ef8c31647a206e05fcaff70527182&catalog_id=242&pn=0&rn=20&dtype=xml");
    }

    /*
     * 当前时间
     */
    private void onLoad() {
        String label = DateUtils.formatDateTime(getApplicationContext(),
                System.currentTimeMillis(), DateUtils.FORMAT_SHOW_TIME
                        | DateUtils.FORMAT_SHOW_DATE
                        | DateUtils.FORMAT_ABBREV_ALL);

        // Update the LastUpdatedLabel
        pull_refresh_list.getLoadingLayoutProxy().setLastUpdatedLabel(label);
    }

}

MyAsyncTask中

package com.bw.asynctask;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;

import android.R.integer;
import android.content.Context;
import android.os.AsyncTask;
import android.util.Xml;

import com.bw.adapter.MyAdapter;
import com.bw.bean.Books;
import com.handmark.pulltorefresh.library.PullToRefreshListView;

public class MyAsyncTask extends AsyncTask<String, integer, List<Books>> {
    private Context context;
    private PullToRefreshListView pull_refresh_list;
    private List<Books> list;


    public MyAsyncTask(Context context, PullToRefreshListView pull_refresh_list) {
        super();
        this.context = context;
        this.pull_refresh_list = pull_refresh_list;
    }

    @Override
    protected List<Books> doInBackground(String... params) {
            try {
                //获取URL
                URL url = new URL(params[0]);
                //获取HttpURLConnection
                HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                //设置请求超时时间
                conn.setConnectTimeout(10000);

                conn.setDoOutput(true);
                conn.setDoInput(true);
                conn.setUseCaches(false);
                conn.setRequestMethod("GET");
                conn.connect();

                if(conn.getResponseCode() == 200){
                    InputStream is = conn.getInputStream();
                    pullParserXML(is);
                    return list;
                }
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (ProtocolException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        return null;
    }



    @Override
    protected void onPostExecute(List<Books> result) {
        super.onPostExecute(result);

        pull_refresh_list.setAdapter(new MyAdapter(context,list));
    }
    private void pullParserXML(InputStream is) {
        try {
            XmlPullParser parser = Xml.newPullParser();
            parser.setInput(is, "utf-8");
            int event = parser.getEventType();
            boolean flag = true;
            String tagname = "";
            Books book = null;

            while(flag){
                switch (event) {
                case XmlPullParser.START_DOCUMENT:
                    list = new ArrayList<Books>();
                    break;

                case XmlPullParser.START_TAG:
                    tagname = parser.getName();
                    if(tagname.equals("item")){
                        book = new Books();
                    }  
                    break;

                case XmlPullParser.TEXT:
                    if(tagname.equals("title")){
                        book.setTitle(parser.getText());
                    }else if(tagname.equals("sub1")){
                        book.setSub1(parser.getText());
                    }else if(tagname.equals("img")){
                        book.setImg(parser.getText());
                    }else if(tagname.equals("reading")){
                        book.setReading(parser.getText());
                    }else if(tagname.equals("bytime")){
                        book.setBytime(parser.getText());
                    }
                    break;

                case XmlPullParser.END_TAG:
                    tagname = parser.getName();
                    if(tagname.equals("item")){
                        list.add(book);
                    }
                    tagname = "";
                    break;

                case XmlPullParser.END_DOCUMENT:
                    flag = false;
                    break;
                }
                event = parser.next();
            }

        } catch (XmlPullParserException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值