2014-01-11 81 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