0

我使用getaddata類的getview方法將數據填充到列表視圖中。它運作良好。我在每個列表中都有一個相對佈局,通過它我可以播放一個audiofile。我在getview方法中使用onclicklistener,如下所示。點擊自定義適配器的列表項子視圖上的點擊者

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    // TODO Auto-generated method stub 
    View vi = convertView; 

    if (convertView == null) 
     vi = inflater.inflate(R.layout.chatbubbles_listrow, null); 
    context = parent.getContext(); 

    TextView date = (TextView) vi.findViewById(R.id.date); 
    RelativeLayout playaudio = (RelativeLayout) vi 
      .findViewById(R.id.audio_image); 
    HashMap<String, String> events = new HashMap<String, String>(); 
    events = data.get(position); 
    final String restype = events.get(Conversation.TAG_USERTYPE); 
    audiopath = events.get(Conversation.TAG_AUDIOPATH); 
    playaudio.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      stopPlayBack(); 
      Toast.makeText(context, audiopath, Toast.LENGTH_SHORT).show(); 
      Log.e("On Click path", audiopath); 
      new LoadChats().execute(); 
     } 
    }); 

    date.setText(restype + audiopath); 
    return vi; 
} 

我的列表視圖中顯示的所有信息正確的,因爲我想,但是當我點擊相對佈局則音頻播放是正確的播放,但是當我點擊另一個相對佈局一樣了音頻播放這是錯誤的。每個listitem都有自己的音頻路徑,必須播放,但此處只播放一個以前播放的音頻播放。我知道playaudio的onClicklistner問題,但我沒有得到這個問題。它打擊了我的想法。請幫忙。

預先感謝

+0

你嘗試的項目,要被點擊?這是一個很常見的問題... – Aeefire

+0

Log.e(「點擊路徑」,audiopath)總是顯示相同的路徑?或者它取決於點擊的項目? –

+0

Log.e(「點擊路徑」,audiopath); – Charan

回答

2

Log.e( 「在點擊路徑」,audiopath);

- 是最後膨脹的視圖的音頻路徑。

您需要從點擊的視圖中獲取音頻路徑。

playaudio.setTag(audiopath); //重要

@Override 
    public void onClick(View v) { 
     stopPlayBack(); 
     String pathOfAudio = String.valueOf(v.getTag()); 
     Toast.makeText(context, pathOfAudio, Toast.LENGTH_SHORT).show(); 
     Log.e("On Click path", pathOfAudio); 
     new LoadChats().execute(); // In aynctask use pathOfAudio - path to be played 
    } 
}); 

date.setText(restype + audiopath); 
return vi; 

}

+0

它運作良好。謝謝charan。超級接受的答案 –

+0

Sooper真棒。 :)好它對你有用。 – Charan

+0

你可以給我你的電子郵件ID。我需要討論一些問題。 –

相關問題