각 벨소리에 대한 각 행에 재생 이미지보기가있는 벨소리 목록보기가 있습니다.
보기입니다 ..
이제 분명히 사용자가 재생 버튼을 클릭하면 일시 중지 버튼으로 전환되어야합니다.이 기능을 구현했으며 지금까지 모든 것이 좋습니다 ..
이제 문제가 있습니다.
현재 재생중인 행을 추적하는 방법을 모르겠습니다. 사용자가 다른 행에서 노래를 재생하려면 먼저 현재 일시 중지 토글을 재생으로 변경 한 다음 새 행을 재생해야합니다.
제발 도와주세요!?
인터페이스 (어댑터에서)
public interface PlayPauseClick {
void playPauseOnClick(int position);
}
private PlayPauseClick callback;
public void setPlayPauseClickListener(PlayPauseClick listener) {
this.callback = listener;
}
어댑터 (getView에서)
Product product = (Product) mDataItems.get(position);
holder.playPause=(ImageView)v.findViewById(R.id.playPause);
holder.playPause.setImageResource(product.getPlayPauseId());
holder.playPause.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (callback != null) {
callback.playPauseOnClick(position);
}
}
});
활동
@Override
public void playPauseOnClick(int position) {
final Product product = productList.get(position);
if (product.paused) {
product.setPlayPauseId(R.drawable.ic_pause);
product.paused=false;
}else {
product.setPlayPauseId(R.drawable.ic_play);
product.paused = true;
}
adapter.notifyDataSetChanged();
};
어댑터에서 재생되는 현재 노래의 색인을 저장할 수 있습니다.
따라서 다른 버튼을 클릭 할 때 일시 중지를 켜면됩니다.
어댑터에서 :
int currentPosition = -1;
...
if (callback != null) {
callback.playPauseOnClick(position);
if (currentPosition == -1){
currentPosition = position;
} else if (currentPosition == position){
currentPosition = -1;
} else if (currentPosition != -1 && currentPosition != position){
callback.playPauseOnClick(currentPosition);
currentPosition = position;
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다