android示例之音乐播放器第一天补充
来源:互联网 发布:句解霸软件官方下载 编辑:程序博客网 时间:2024/06/06 23:52
补充第一天未完成的功能是:把读取的服务器端的文件以列表的形式显示在ListView中。
public class PlayerActivity extends ListActivity {private static final int UPDATE=1;private static final int ABOUT=2;private List<Mp3Info> mp3Infos=null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); this.mp3Infos=new ArrayList<Mp3Info>(); new Thread(r).start(); } /** * 点击MEUN按钮,弹出菜单 */ @Override public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, UPDATE, 1, R.string.update); menu.add(0, ABOUT, 2, R.string.about); return super.onCreateOptionsMenu(menu); } /** * 响应用户点击了哪个菜单 */ @Override public boolean onOptionsItemSelected(MenuItem item) { if(item.getItemId()==UPDATE){ //更新列表 new Thread(r).start(); }else if(item.getItemId()==ABOUT){ //点击了关于菜单 } return super.onOptionsItemSelected(item); } /** * 下载服务器端的xml文件,返回文件的内容 * @param urlStr * @return */ public String updateList(String urlStr){ FileDownloader fileDownloader=new FileDownloader(); String content=fileDownloader.download(urlStr); return content; } /** * 解析下载的xml文件 * @param xmlStr * @return */ public void parse(String xmlStr){ SAXParserFactory factory=SAXParserFactory.newInstance(); try {XMLReader reader=factory.newSAXParser().getXMLReader();FileContentHandler fileContentHandler=new FileContentHandler(this.mp3Infos);reader.setContentHandler(fileContentHandler);reader.parse(new InputSource(new StringReader(xmlStr)));} catch (Exception e) {e.printStackTrace();} } /** * handler默认关联主线程,在主线程中处理UI,显示列表 */ Handler handler=new Handler(){ public void handleMessage(Message msg) { //显示列表 showList(); } }; /** * 新开线程处理下载操作 */ Runnable r=new Runnable(){ public void run() { String xml=updateList("http://192.168.1.100:8080/test/resources.xml"); //解析下载的XML文件parse(xml);Message msg=handler.obtainMessage();msg.sendToTarget(); } }; /** * 把解析的结果显示到ListActivity的ListView中 */ public void showList(){ 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("mp3Name", mp3Info.getMp3Name()); map.put("mp3Size", mp3Info.getMp3Size()); list.add(map); } SimpleAdapter simpleAdapter=new SimpleAdapter(PlayerActivity.this,list,R.layout.list,new String[]{"mp3Name","mp3Size"},new int[]{R.id.mp3Name,R.id.mp3Size}); setListAdapter(simpleAdapter); }}
直接上代码,以后自己可以查看。新的知识点可能就是把xml文件解析,然后把内容按照ListView显示到Activity中。
0 0
- android示例之音乐播放器第一天补充
- android示例之音乐播放器第一天
- android示例之音乐播放器第三天
- android示例之音乐播放器第五天
- android示例之音乐播放器第二天
- android示例之音乐播放器第四天
- android示例之音乐播放器第六天
- android 之 service+contentProvider 音乐播放示例
- android播放音乐示例
- Android:音乐播放示例
- android播放音乐示例
- android之音乐播放器
- Android之音乐播放器
- android示例之音乐播放器第七天(实现第六天吹的牛之得到SD卡的所有音乐文件)
- Android 项目之--Mini音乐播放器
- android音乐播放器之----天天动听
- android 应用开发之音乐播放器
- Android开发之音乐播放器
- R语言之数据挖掘相关包and函数
- 卸载Android模拟器中软件
- myeclipse破解
- Hibernate的回调与拦截
- NYOJ 741 "数学家"ST
- android示例之音乐播放器第一天补充
- 带着微笑出发(愿与君共勉)
- 小明的调查作业
- Recursion problems
- [BZOJ1029][JSOI2007][贪心][堆]建筑抢修
- ACM-SG函数之S-Nim——hdu1536 hdu1944 poj2960
- SqlServer 中根据概率获取数据的sql 写法—抄袭的记录下
- 第九周C++作业(part 1)
- 非男非女那粉嫩粉嫩