网络获取xml文件,pull解析listVist展示
2016-07-27 14:03
417 查看
webView 展示
package com.example.xmlpull;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class ShowActivity extends Activity {
private WebView wb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show);
wb=(WebView)findViewById(R.id.wb);
String url=getIntent().getStringExtra("url");
WebSettings set = wb.getSettings();
set.setJavaScriptEnabled(true);
wb.loadUrl(url);
wb.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.show, menu);
return true;
}
}
工具包代码
package utils;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import bean.News;
import android.content.res.XmlResourceParser;
import android.util.Xml;
public class HttpUtils {
public static String qudu(String path) throws Exception{
//建立一个URL对象
URL url = new URL(path);
//得到打开的链接对象
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
//设置请求超时与请求方式
conn.setReadTimeout(5*1000);
conn.setRequestMethod("GET");
//从链接中获取一个输入流对象
BufferedReader bf=new BufferedReader(new InputStreamReader(conn.getInputStream()));
StringBuffer sb=new StringBuffer();
String ss;
while((ss=bf.readLine())!=null){
sb.append(ss);
}
return sb.toString();
}
public static List<News> paerss(String str) throws Exception{
List<News> list=new ArrayList<News>();
XmlPullParser pull=Xml.newPullParser();
ByteArrayInputStream in=new ByteArrayInputStream(str.getBytes());
pull.setInput(in,"utf-8");
News n=null;
int type = pull.getEventType();
while(type!=XmlResourceParser.END_DOCUMENT){
String name=pull.getName();
switch (type) {
case XmlResourceParser.START_DOCUMENT:
break;
case XmlResourceParser.START_TAG:
if("item".equalsIgnoreCase(name)){
n=new News();
}else if("title".equalsIgnoreCase(name)){
n.setTitle(pull.nextText());
}else if("link".equalsIgnoreCase(name)){
n.setLink(pull.nextText());
}else if("copyright".equalsIgnoreCase(name)){
n.setCopyright(pull.nextText());
}else if("pubDate".equalsIgnoreCase(name)){
n.setPubDate(pull.nextText());
}
break;
case XmlResourceParser.END_TAG:
if("item".equalsIgnoreCase(name)){
list.add(n);
n=null;
}
break;
default:
break;
}
type=pull.next();
}
return list;
}
}
主Activity页面
package com.example.xmlpull;
import java.util.List;
import utils.HttpUtils;
import bean.News;
import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.AdapterView.OnItemClickListener;
public class MainActivity extends Activity {
private List<News> list;
private ListView lv;
private String url="http://www.sciencenet.cn/xml/iphoneInterface.aspx?type=news&nums=20&pass=";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv=(ListView)findViewById(R.id.lv);
new AsyncTask<String, Void, List<News>>(){
@Override
protected List<News> doInBackground(String... params) {
try {
String s = HttpUtils.qudu(params[0]);
Log.i("999", s);
list=HttpUtils.paerss(s);
Log.i("0000", list.size()+"");
return list;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
protected void onPostExecute(java.util.List<News> result) {
lv.setAdapter(new MyAdapter(MainActivity.this,result));
};
}.execute(url);
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent=new Intent(MainActivity.this, ShowActivity.class);
intent.putExtra("url", list.get(position).getLink());
startActivity(intent);
}
});
}
}
package com.example.xmlpull;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class ShowActivity extends Activity {
private WebView wb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show);
wb=(WebView)findViewById(R.id.wb);
String url=getIntent().getStringExtra("url");
WebSettings set = wb.getSettings();
set.setJavaScriptEnabled(true);
wb.loadUrl(url);
wb.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.show, menu);
return true;
}
}
工具包代码
package utils;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import bean.News;
import android.content.res.XmlResourceParser;
import android.util.Xml;
public class HttpUtils {
public static String qudu(String path) throws Exception{
//建立一个URL对象
URL url = new URL(path);
//得到打开的链接对象
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
//设置请求超时与请求方式
conn.setReadTimeout(5*1000);
conn.setRequestMethod("GET");
//从链接中获取一个输入流对象
BufferedReader bf=new BufferedReader(new InputStreamReader(conn.getInputStream()));
StringBuffer sb=new StringBuffer();
String ss;
while((ss=bf.readLine())!=null){
sb.append(ss);
}
return sb.toString();
}
public static List<News> paerss(String str) throws Exception{
List<News> list=new ArrayList<News>();
XmlPullParser pull=Xml.newPullParser();
ByteArrayInputStream in=new ByteArrayInputStream(str.getBytes());
pull.setInput(in,"utf-8");
News n=null;
int type = pull.getEventType();
while(type!=XmlResourceParser.END_DOCUMENT){
String name=pull.getName();
switch (type) {
case XmlResourceParser.START_DOCUMENT:
break;
case XmlResourceParser.START_TAG:
if("item".equalsIgnoreCase(name)){
n=new News();
}else if("title".equalsIgnoreCase(name)){
n.setTitle(pull.nextText());
}else if("link".equalsIgnoreCase(name)){
n.setLink(pull.nextText());
}else if("copyright".equalsIgnoreCase(name)){
n.setCopyright(pull.nextText());
}else if("pubDate".equalsIgnoreCase(name)){
n.setPubDate(pull.nextText());
}
break;
case XmlResourceParser.END_TAG:
if("item".equalsIgnoreCase(name)){
list.add(n);
n=null;
}
break;
default:
break;
}
type=pull.next();
}
return list;
}
}
主Activity页面
package com.example.xmlpull;
import java.util.List;
import utils.HttpUtils;
import bean.News;
import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.AdapterView.OnItemClickListener;
public class MainActivity extends Activity {
private List<News> list;
private ListView lv;
private String url="http://www.sciencenet.cn/xml/iphoneInterface.aspx?type=news&nums=20&pass=";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv=(ListView)findViewById(R.id.lv);
new AsyncTask<String, Void, List<News>>(){
@Override
protected List<News> doInBackground(String... params) {
try {
String s = HttpUtils.qudu(params[0]);
Log.i("999", s);
list=HttpUtils.paerss(s);
Log.i("0000", list.size()+"");
return list;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
protected void onPostExecute(java.util.List<News> result) {
lv.setAdapter(new MyAdapter(MainActivity.this,result));
};
}.execute(url);
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent=new Intent(MainActivity.this, ShowActivity.class);
intent.putExtra("url", list.get(position).getLink());
startActivity(intent);
}
});
}
}
相关文章推荐