从列表视图播放音乐



嗨,我有列表,我有本地音乐文件。我想在单击列表项目时播放我的音乐文件。我的点击列表项目如下:

lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
switch( position )
{
case 0:  
v.contentEquals("file:///android_asset/disco.mp3");
playSound(v);
case 1:
v.contentEquals("file:///android_asset/disco.mp3");
playSound(v); 
break;
};
}

我的媒体播放器是这样的:

private void playSound(String v) {
// TODO Auto-generated method stub
try {
mp.setDataSource(v);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mp.start();
}

当我点击列表项目时,程序冻结并强制关闭。我该怎么办?

logcat输出

01-11 23:19:19.191:E/AndroidRuntime(4811):致命异常:main01-11 23:19:19.191:E/AndroidRuntime(4811):java.lang.NullPointerException01-11 23:19:19.191:E/AndroidRuntime(4811):在com.hmomeni.customlistview.MainActivity$11.onItemClick(MainActivity.java:113)01-11 23:19:19.191:E/AndroidRuntime(4811):在android.widget.AdaperView.performItemClick(AdapterView.java:301)01-11 23:19:19.191:E/AndroidRuntime(4811):在android.widget.AbsListView.performItemClick(AbsListView.java:1519)01-11 23:19:19.191:E/AndroidRuntime(4811):在android.widget.AbsListView$PerformClick.run(AbsListView.java:3291)01-11 23:19:19.191:E/AndroidRuntime(4811):在android.widget.AbsListView$1.run(AbsListView.java:4340)01-11 23:19:19.191:E/AndroidRuntime(4811):在android.os.Handler.handleCallback(Handler.java:725)01-11 23:19:19.191:E/AndroidRuntime(4811):在android.os.Handler.dispatchMessage(Handler.java:92)01-11 23:19:19.191:E/AndroidRuntime(4811):在android.os.Looper.loop(Looper.java:137)01-11 23:19:19.191:E/AndroidRuntime(4811):在android.app.ActivityThread.main(ActivityThreads.java:5328)01-11 23:19:19.191:E/AndroidRuntime(4811):位于java.lang.reflect.Method.invokeNative(Native Method)01-11 23:19:19.191:E/AndroidRuntime(4811):在java.lang.reflect.Method.ioke(Method.java:511)01-11 23:19:19.191:E/AndroidRuntime(4811):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)01-11 23:19:19.191:E/AndroidRuntime(4811):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)01-11 23:19:19.191:E/AndroidRuntime(4811):在dalvik.system.NativeStart.main(Native Method)

"v"是正常字符串吗?如果是这样,由于它是不可变的,您不能通过使用的函数来更改它

v.contentEquals("file:///android_asset/disco.mp3");

您应该使用正常的"=":设置它

v="file:///android_asset/disco.mp3";

最新更新