您的位置:首页 > 其它

xml中引用PullToRefreshListView

2016-05-09 21:26 351 查看
在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();
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: