您的位置:首页 > 移动开发 > Android开发

Android 从本地服务器下载文件与解析过程详解(四)

2013-02-05 16:45 936 查看
(3)、主代码:

java代码:

package com.piseces.mp3player;
import java.io.StringReader;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;
import com.pisces.model.Mp3Info;
import com.pisces.xml.Mp3ListContentHandler;
import com.pisecs.download.HttpDownloader;
import android.app.Activity;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.SimpleAdapter;
public
class Mp3ListActivity
extends ListActivity {
private
static final
int MENU_UPDATE=1;
private
static final
int MENU_ABOUT=2;
/** Called when the activity is first created.
*/
public
void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
updateListView();
}

@Override
public
boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
menu.add(0, MENU_UPDATE,
1, R.string.mp3list_update);
menu.add(0, MENU_ABOUT,
2, R.string.mp3list_about);
return
super.onCreateOptionsMenu(menu);
}
@Override
public
boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId()==MENU_UPDATE){
//更新按钮
updateListView();
}else
if(item.getItemId()==MENU_ABOUT){
//关于按钮
}
return
super.onOptionsItemSelected(item);
}
public SimpleAdapter buildSimpleAdapter(List<Mp3Info>
mp3Infos){
List<HashMap<String,String>>
list=new ArrayList<HashMap<String,String>>();
for (Iterator iter=mp3Infos.iterator();iter.hasNext();) {
Mp3Info mp3Info=(Mp3Info)iter.next();
HashMap<String,String> map=new
HashMap<String,String>();
map.put("mp3_name", mp3Info.getMp3Name());
map.put("mp3_size", mp3Info.getMp3Size());
list.add(map);
}
SimpleAdapter simpleAdapter=new SimpleAdapter(Mp3ListActivity.this,
list, R.layout.mp3_info_item,
new String[]{"mp3_name","mp3_size"},

new
int[]{R.id.mp3_name,R.id.mp3_size});
return simpleAdapter;
}
//列表更新按钮方法
public  void  updateListView(){
String xml=downloadXML("http://192.168.2.101:8080/mp3/resources.xml");
System.out.println("xml--->"+xml);
List<Mp3Info> mp3Infos=parseSAX(xml);
SimpleAdapter SA=buildSimpleAdapter(mp3Infos);
setListAdapter(SA );
}
public String downloadXML(String urlStr){
HttpDownloader httpDownloader=new HttpDownloader();
String xmlStr=httpDownloader.download(urlStr);
return xmlStr;
}
//SAX解析过程
public List<Mp3Info> parseSAX(String xmlStr){
SAXParserFactory factory=SAXParserFactory.newInstance();
SAXParser parser;
List<Mp3Info> infos=new
ArrayList<Mp3Info>();
try {
parser = factory.newSAXParser();
XMLReader xmlreader=parser.getXMLReader();
Mp3ListContentHandler mp3listContentHandler=new Mp3ListContentHandler(infos);
xmlreader.setContentHandler(mp3listContentHandler);
xmlreader.parse(new InputSource(new StringReader(xmlStr)));
for(Iterator iterator=infos.iterator();iterator.hasNext();){
System.out.println("*************");
Mp3Info mp3Info=(Mp3Info)iterator.next();
System.out.println(mp3Info);
}
} catch (Exception e) {
e.printStackTrace();
}
return infos;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐