网络获取xml文件,pull解析listVist展示
来源:互联网 发布:linux dhcp option 66 编辑:程序博客网 时间:2024/06/06 21:38
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);
}
});
}
}
- 网络获取xml文件,pull解析listVist展示
- 从网络解析xml文件pull解析
- Android-通过网络获取xml文件使用pull解析得到服务器中的信息(新闻客户端)
- Pull解析XML文件
- Pull解析xml文件
- pull解析xml文件
- Pull解析xml文件
- pull解析xml文件
- pull解析xml文件
- pull解析xml文件
- Pull解析xml文件
- Pull解析XML文件
- pull解析xml文件
- pull解析xml文件
- Pull解析Xml文件
- Pull解析XML文件
- pull解析XML文件
- PULL解析XML文件
- GDI+初始化类
- Android酷炫实用的开源框架(UI)
- 色彩空间转换
- Linux下查看系统版本号信息的方法
- Java的四种引用,强弱软虚,用到的场景
- 网络获取xml文件,pull解析listVist展示
- 多态实现线性表(队列,串,堆栈),要求具备线性表的基本操作
- Java工具箱之常见处理文件操作
- Android 各大网络请求库的比较及实战
- PHP CURL访问HTTPS使用详解
- 在Android上使用qemu-user运行可执行文件
- 流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)
- 传智播客支持中国制造2025人才培养工程
- eclipse + android 使用技巧