2016-10-04 72 views
0

我的應用程序有一個ListView的DetailView。裏面的detailView我可以錄製,存儲在SD卡中並播放音頻文件(outputFile),問題是無論在我的listView中點擊哪個項目,它總是記錄最新的音頻。我怎樣才能將記錄的outputFile關聯到選中的item click detailView?我希望這是有道理的。提前致謝。根據點擊列表視圖項播放音頻

play.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) throws IllegalArgumentException,SecurityException,IllegalStateException { 
      MediaPlayer m = new MediaPlayer(); 

      try { 
       m.setDataSource(outputFile); //AUDIO DATA SOURCE outputFile 
      } 

      catch (IOException e) { 
       e.printStackTrace(); 
      } 

      try { 
       m.prepare(); 
      } 

      catch (IOException e) { 
       e.printStackTrace(); 
      } 

      m.start(); 
      Toast.makeText(getActivity().getBaseContext(), "Playing audio", Toast.LENGTH_LONG).show(); 
     } 
+0

問題在於適配器和輸入到適配器中的數據。 – suku

回答

0

我不知道你想要什麼,但下面的內容可以解決你的問題。

您可以使用散列表來存儲分配給按鈕的音頻。

private HashMap<String, String> hm; 

public MyAdapter(){ 
    hm = new HashMap<>(); 
} 

你已經記錄並存儲在音頻後,分配一個計數器錄音0,1,2,...,並存儲以下

hm.put("Position" & counter, outputFilePath); 

然後在你的play.OnClickListener使用以下爲數據源

m.setDataSource(hm.get("Position" & itemPosition));