2014-01-11 82 views
0

嗨,我有名单,我有本地音乐文件。当我点击我的列表项目时,我想播放我的音乐文件。 继承人我的onclick列表项如下:从列表视图播放音乐

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(); 
     } 

,当我在列表中的项目计划冻结单击并强制关闭。 我该怎么办?

logcatoutput

01-11 23:19:19.191:E/AndroidRuntime(4811):致命异常:主 01-11 23:19:19.191:E/AndroidRuntime(4811):JAVA。 lang.NullPointerException 01-11 23:19:19.191:E/AndroidRuntime(4811):at com.hmomeni.customlistview.MainActivity $ 11.onItemClick(MainActivity.java:113) 01-11 23:19:19.191:E/AndroidRuntime(4811):在android.widget.AdbterView.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/AndroidR (4811):at android.widget.AbsListView $ PerformClick.run(AbsListView.java:3291) 01-11 23:19:19.191:E/AndroidRuntime(4811):at android.widget.AbsListView $ 1.run(AbsListView .java:4340) 01-11 23:19:19.191:E/AndroidRuntime(4811):at android.os.Handler.handleCallback(Handler.java:725) 01-11 23:19:19.191:E/AndroidRuntime (4811):at android.os.Handler.dispatchMessage(Handler.java:92) 01-11 23:19:19.191:E/AndroidRuntime(4811):at android.os.Looper.loop(Looper.java:137 ) 01-11 23:19:19.191:E/AndroidRuntime(4811):at android.app.ActivityThread.main(ActivityThread.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):at java.lang.reflect.Method.invoke(Method.java: 511) 01-11 23:19:19.191:E/AndroidRuntime(4811):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1102) 01-11 23:19:19.191: E/AndroidRuntime(4811):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869) 01-11 23:19:19.191:E/AndroidRuntime(4811):at dalvik.system.NativeStart。 main(Native Method)

+0

你应该做的是粘贴你的筹码跟踪并向我们展示您的错误。谢谢 –

+0

也许是由文件寻址造成的,你可以发布你的Log dada? – FxRi4

+0

logcat添加了@FxRi4 – Soheyl

回答

0

“v”是一个正常的字符串吗?如果是这样,因为它是不可变的,你无法通过功能使用更改:

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

你应该是用正常的“=”设置:

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

测试不起作用:(同一个错误 – Soheyl

+0

在调用“playSound”之前是否初始化“mp”? –

+0

并且是其正常字符串。 ?我的清单有10个项目,然后是不同的歌曲,我应该如何获得它们? – Soheyl