Android 您所在的位置:网站首页 android在线编程 Android

Android

2023-08-21 23:26| 来源: 网络整理| 查看: 265

这里写图片描述

这是一个搜索歌曲,下载歌曲,播放歌曲的小程序。是项目中的一个子功能模块。程序非常简单只有一个界面,功能简单明了在搜索栏中输入想搜的信息,点击搜索按钮下方ListView便列出搜索结果。中间一排歌曲按钮,可以前后选择歌曲,播放暂停歌曲。

搜索歌曲

搜索歌曲为网络操作相对耗时,这里当用户点击搜索时显示一个搜索进度框,并新建一个新线程开始调用搜索歌曲助手类。在调用搜索歌曲助手类的同时传入一个回调函数,当搜索歌曲助手类方法执行成功或失败都会通过回调函数返回结果,当成功时把搜索结果返回并用Message的sendMessage方法来修改UI(把搜索结果显示给ViewList)。

搜索方法代码如下

btSearch.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { displayMusicHistory = false; dialog.show();// 进入加载状态,显示进度条 new Thread(new Runnable() { @Override public void run() { searchUtils.getMusics(edtKey.getText().toString(), new OnLoadSearchFinishListener() { @Override public void onLoadSucess(List musicList) { dialog.dismiss();// 加载完成,取消进度条 Message msg = new Message(); msg.what = REFLASH_BY_SEARCH_RESULT; listSearchResult = musicList; mHandler.sendMessage(msg); } @Override public void onLoadFiler() { dialog.dismiss();// 加载失败,取消进度条 Toast.makeText(MainActivity.this, "加载失败", Toast.LENGTH_SHORT).show(); } }); } }).start(); } });

搜索歌曲助手类核心方法如下 getMusics传入搜索关键字和回调函数,用来进行网络请求。 parseFromSearchMusicResult用来对网络请求结果进行拼装获得所需歌曲列表再返回给回调函数。

private void parseFromSearchMusicResult(JSONObject result, OnLoadSearchFinishListener listener) { getMusicKey(); String key=musicKey; try{ JSONObject songData = result.getJSONObject("data"); JSONObject song = songData.getJSONObject("song"); JSONArray listObj = (JSONArray)song.getJSONArray("list"); List musicList = new ArrayList(); for(int i=0; i < listObj.length()-1; i++) { JSONObject music =(JSONObject)listObj.get(i); String musciName = music.getString("fsong"); String airtistName = music.getString("fsinger"); String albumName = music.getString("albumName_hilight"); if (albumName.contains(">")) { albumName = albumName.substring(albumName.indexOf(">")+1); albumName = albumName.substring(0, albumName.indexOf("


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有