package com.bwei.test;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import org.xml.sax.InputSource;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
import com.bwei.adapter.Myadapter;
import com.bwei.vo.Bean;
import com.bwei.xlistview.XListView;
import com.bwei.xlistview.XListView.IXListViewListener;
import com.lidroid.xutils.HttpUtils;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;
import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;
import com.lidroid.xutils.http.client.multipart.content.ByteArrayBody;
import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
public class MainActivity extends Activity implements IXListViewListener {
String path = "http://www.oschina.net/action/api/tweet_list?uid=0&pageSize=10&pageIndex=";
private List<Bean> list=new ArrayList<Bean>();
private XListView lv;
boolean flags=true;
Handler hd=new Handler(){
public void handleMessage(android.os.Message msg) {
if(msg.what==1){
adapter.lvDown(list);
}else if(msg.what==2){
adapter.lvUp(list);
}
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//寻找控件
lv = (XListView) findViewById(R.id.xlistview);
lv.setPullLoadEnable(true);
lv.setPullRefreshEnable(true);
lv.setXListViewListener(this);
adapter = new Myadapter(list, MainActivity.this);
lv.setAdapter(adapter);
getData();
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long arg3) {
//进行跳转带值
Intent intent=new Intent(MainActivity.this, Second.class);
intent.putExtra("id", list.get(position-1).id);
startActivity(intent);
}
});
}
// 请求数据
public void getData() {
// 采用第三方来请求数据
HttpUtils utils = new HttpUtils();
utils.send(HttpMethod.GET, path, new RequestCallBack<String>() {
@Override
public void onFailure(HttpException arg0, String arg1) {
System.out.println("请求失败!");
}
@Override
public void onSuccess(ResponseInfo<String> arg0) {
// 返回的xml字符串
String xml = arg0.result;
// 放在流中以便pull解析
InputStream is = new ByteArrayInputStream(xml.getBytes());
// 在此调用解析的方法,将流装进去
pullJiexi(is);
//list里面已经装了所有数据
if(flags==true){
hd.sendEmptyMessage(1);
}else{
hd.sendEmptyMessage(2);
}
}
});
}
// 解析的方法
protected void pullJiexi(InputStream is) {
try {
Bean b = null;
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser parser = factory.newPullParser();
// 得到流
parser.setInput(is, "utf-8");
// 得到其类型
int type = parser.getEventType();
// 进行判断
while (type != XmlPullParser.END_DOCUMENT) {
switch (type) {
case XmlPullParser.START_DOCUMENT:
list = new ArrayList<Bean>();
break;
case XmlPullParser.START_TAG:
//进行判断
if("tweet".equals(parser.getName())){
b=new Bean();
}else if("id".equals(parser.getName())){
b.setId(Integer.parseInt(parser.nextText()));
}else if("imgBig".equals(parser.getName())){
b.setImgBig(parser.nextText());
}
else if("portrait".equals(parser.getName())){
b.setPortrait(parser.nextText());
}else if("author".equals(parser.getName())){
b.setAuthor(parser.nextText());
}else if("body".equals(parser.getName())){
b.setBody(parser.nextText());
}
break;
case XmlPullParser.END_TAG:
if("tweet".equals(parser.getName())){
list.add(b);
}
break;
case XmlPullParser.END_DOCUMENT:
break;
}
type=parser.next();
}
System.out.println("解析成功"+list.toString());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void onRefresh() {
path=path+1;
flags=true;
getData();
//关闭
lv.stopLoadMore();
lv.stopRefresh();
}
int i=1;
private Myadapter adapter;
@Override
public void onLoadMore() {
i++;
path=path+i;
flags=false;
getData();
lv.stopLoadMore();
lv.stopRefresh();
}
}
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import org.xml.sax.InputSource;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
import com.bwei.adapter.Myadapter;
import com.bwei.vo.Bean;
import com.bwei.xlistview.XListView;
import com.bwei.xlistview.XListView.IXListViewListener;
import com.lidroid.xutils.HttpUtils;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;
import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;
import com.lidroid.xutils.http.client.multipart.content.ByteArrayBody;
import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
public class MainActivity extends Activity implements IXListViewListener {
String path = "http://www.oschina.net/action/api/tweet_list?uid=0&pageSize=10&pageIndex=";
private List<Bean> list=new ArrayList<Bean>();
private XListView lv;
boolean flags=true;
Handler hd=new Handler(){
public void handleMessage(android.os.Message msg) {
if(msg.what==1){
adapter.lvDown(list);
}else if(msg.what==2){
adapter.lvUp(list);
}
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//寻找控件
lv = (XListView) findViewById(R.id.xlistview);
lv.setPullLoadEnable(true);
lv.setPullRefreshEnable(true);
lv.setXListViewListener(this);
adapter = new Myadapter(list, MainActivity.this);
lv.setAdapter(adapter);
getData();
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long arg3) {
//进行跳转带值
Intent intent=new Intent(MainActivity.this, Second.class);
intent.putExtra("id", list.get(position-1).id);
startActivity(intent);
}
});
}
// 请求数据
public void getData() {
// 采用第三方来请求数据
HttpUtils utils = new HttpUtils();
utils.send(HttpMethod.GET, path, new RequestCallBack<String>() {
@Override
public void onFailure(HttpException arg0, String arg1) {
System.out.println("请求失败!");
}
@Override
public void onSuccess(ResponseInfo<String> arg0) {
// 返回的xml字符串
String xml = arg0.result;
// 放在流中以便pull解析
InputStream is = new ByteArrayInputStream(xml.getBytes());
// 在此调用解析的方法,将流装进去
pullJiexi(is);
//list里面已经装了所有数据
if(flags==true){
hd.sendEmptyMessage(1);
}else{
hd.sendEmptyMessage(2);
}
}
});
}
// 解析的方法
protected void pullJiexi(InputStream is) {
try {
Bean b = null;
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser parser = factory.newPullParser();
// 得到流
parser.setInput(is, "utf-8");
// 得到其类型
int type = parser.getEventType();
// 进行判断
while (type != XmlPullParser.END_DOCUMENT) {
switch (type) {
case XmlPullParser.START_DOCUMENT:
list = new ArrayList<Bean>();
break;
case XmlPullParser.START_TAG:
//进行判断
if("tweet".equals(parser.getName())){
b=new Bean();
}else if("id".equals(parser.getName())){
b.setId(Integer.parseInt(parser.nextText()));
}else if("imgBig".equals(parser.getName())){
b.setImgBig(parser.nextText());
}
else if("portrait".equals(parser.getName())){
b.setPortrait(parser.nextText());
}else if("author".equals(parser.getName())){
b.setAuthor(parser.nextText());
}else if("body".equals(parser.getName())){
b.setBody(parser.nextText());
}
break;
case XmlPullParser.END_TAG:
if("tweet".equals(parser.getName())){
list.add(b);
}
break;
case XmlPullParser.END_DOCUMENT:
break;
}
type=parser.next();
}
System.out.println("解析成功"+list.toString());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void onRefresh() {
path=path+1;
flags=true;
getData();
//关闭
lv.stopLoadMore();
lv.stopRefresh();
}
int i=1;
private Myadapter adapter;
@Override
public void onLoadMore() {
i++;
path=path+i;
flags=false;
getData();
lv.stopLoadMore();
lv.stopRefresh();
}
}