《mp3Player代码示例.doc》由会员分享,可在线阅读,更多相关《mp3Player代码示例.doc(25页珍藏版)》请在金锄头文库上搜索。
1、从本地服务器上下载文件列表先建立download包,然后将HttpDownloader中的代码靠过来/string指的是urlStr带来的文件/前提是文本文件/* * 1. 创建一个URL对象 * 2. 通过通过URL对象,创建一个HttpURLConnection对象 * 3. 得到InputStream * 4. 从InputStream当中读取数据 * */string 为urlstr里面包含的文件public String download(String urlStr)StringBuffer sb=new StringBuffer();String line=null;/很好的方法是
2、readlineBufferedReader buffer=null;try /创建一个URL对象,调用url函数,把地址传进来URL url=new URL(urlStr);/创建一个Http连接,向下转型,代表http的一个连接HttpURLConnection urlConn=(HttpURLConnection) url.openConnection();/使用IO流读取数据/字节流转换为字符流,字符流转换为行数据/inputstream代表的文件就是地址所包含的文件buffer=new BufferedReader(new InputStreamReader(urlConn.getI
3、nputStream();while (line=buffer.readLine()!=null) sb.append(line); catch (Exception e) / TODO: handle exceptione.printStackTrace();finallytry buffer.close(); catch (Exception e2) / TODO: handle exceptione2.printStackTrace();return sb.toString();然后在创建项目的时候建立的activity上面写按钮程序,就是当点击按钮的时候要触发其他事件public cl
4、ass Mp3ListActivity extends ListActivity /在用户点击menu按钮之后会调用该方法,我们可以在这个方法当中加入自己的按钮控件Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.activity_mp3_list);Overridepublic boolean onCreateOptionsMenu(Menu menu) / Inflate the menu; this ad
5、ds items to the action bar if it is present.getMenuInflater().inflate(R.menu.activity_mp3_list, menu);/这里是新加的代码,其中mp3list_update,mp3list_about都要在string。Xml当中定义/为了代码优化,要把第二个数值变成final statisticmenu.add(0, 1, 1, R.string.mp3list_update);menu.add(0, 2, 2, R.string.mp3list_about);return true;/客户点击哪个按钮的处理
6、方法Overridepublic boolean onOptionsItemSelected(MenuItem item) / TODO Auto-generated method stubSystem.out.println(itemId-+item.getItemId();return super.onOptionsItemSelected(item);进行测试,发现抛出异常缺少listviewpublic class Mp3ListActivity extends ListActivity /这里生成死的,可以使以后更改方便private static final int UPDATE=
7、1;private static final int ABOUT=2;/在用户点击menu按钮之后会调用该方法,我们可以在这个方法当中加入自己的按钮控件Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.activity_mp3_list);Overridepublic boolean onCreateOptionsMenu(Menu menu) / Inflate the menu; this adds ite
8、ms to the action bar if it is present.getMenuInflater().inflate(R.menu.activity_mp3_list, menu);menu.add(0, UPDATE, 1, R.string.mp3list_update);menu.add(0, ABOUT, 2, R.string.mp3list_about);return true;/客户点击哪个按钮的处理方法Overridepublic boolean onOptionsItemSelected(MenuItem item) / TODO Auto-generated me
9、thod stubSystem.out.println(itemId-+item.getItemId();if (item.getItemId()=UPDATE) /用户点击了更新列表按钮/将要下载的地址作为成员变量付给他,然后返回一系列字符串,然后将字符串打印出来String xml=downloadXML(http:/192.168.21.123:8080/mp3/resources.xml);System.out.println(xml-+xml); else if (item.getItemId()=ABOUT)/用户点击了关于按钮return super.onOptionsItemS
10、elected(item);/下载函数,接收字符串,然后调用httpDownloader中的download获得字符串private String downloadXML(String urlStr)HttpDownloader httpDownloader=new HttpDownloader();String result=httpDownloader.download(urlStr);return result;出现bug,并没有显示出返回的字符串。更改:google it改变之后的代码public class Mp3ListActivity extends ListActivity p
11、rivate static final int UPDATE=1;private static final int ABOUT=2;/在用户点击menu按钮之后会调用该方法,我们可以在这个方法当中加入自己的按钮控件Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.activity_mp3_list);Overridepublic boolean onCreateOptionsMenu(Menu menu) /
12、Inflate the menu; this adds items to the action bar if it is present.menu.add(0, UPDATE, 1, R.string.mp3list_update);menu.add(0, ABOUT, 2, R.string.mp3list_about);return super.onCreateOptionsMenu(menu);/客户点击哪个按钮的处理方法Overridepublic boolean onOptionsItemSelected(MenuItem item) / TODO Auto-generated me
13、thod stubSystem.out.println(itemId-+item.getItemId();if (item.getItemId()=UPDATE) /用户点击了更新列表按钮 / 启动线程执行下载任务 new Thread(downloadRun).start(); else if (item.getItemId()=ABOUT)/用户点击了关于按钮return super.onOptionsItemSelected(item); /* * 下载线程 ,将程序剥离到线程当中 */ Runnable downloadRun = new Runnable() Override public void run() / TODO Auto-generated method stub String xml=downloadXML(http:/192.168.21.123:8080/mp3/resources.xml);System.out.println(xml-+xml); ; /下载函数private String downloadXML(String urlStr)HttpDownloader