5 android android-recyclerview
我有一个使用 MediaPlayer 类从互联网播放音乐的应用程序。我使用了 recyclerview,在每个项目上,它都有一个播放/暂停按钮来开始播放和暂停声音。当用户点击另一个项目的播放按钮时,如何将播放按钮更改为暂停按钮?
public class Adapter extends RecyclerView.Adapter<Adapter.Viewholder> {
private List<Track> tracks;
private Context context;
public Adapter(List<Track> tracks, Context context) {
this.tracks = tracks;
this.context = context;
}
@NonNull
@Override
public Viewholder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.track_item, parent, false);
return new Viewholder(view);
}
@Override
public void onBindViewHolder(@NonNull final Viewholder holder, final int position) {
holder.title.setText(tracks.get(position).getTitle());
holder.id.setText(tracks.get(position).getId());
Glide.with(context).load(tracks.get(position).getImgurl()).into(holder.trackImage);
holder.btnPlay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
holder.btnPause.setVisibility(View.VISIBLE);
Intent intent = new Intent(context, Player.class);
intent.putExtra("URL", tracks.get(position).getMusicurl());
context.startService(intent);
}
});
holder.btnPause.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Player.killMediaPlayer();
holder.btnPause.setVisibility(View.INVISIBLE);
}
});
}
@Override
public int getItemCount() {
return tracks.size();
}
public static class Viewholder extends RecyclerView.ViewHolder {
TextView title, id;
ImageView trackImage;
ImageButton btnPlay;
public Viewholder(View itemView) {
super(itemView);
title = itemView.findViewById(R.id.title);
id = itemView.findViewById(R.id.id);
trackImage = itemView.findViewById(R.id.trackImage);
btnPlay = itemView.findViewById(R.id.play);
}
}
Run Code Online (Sandbox Code Playgroud)
}
小智 0
holder.btnPlay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(Track.isPlaying()){
notifyItemChanged(currentItem, holder );
}
Track.setPlaying(true);
currentItem = holder.getAdapterPosition();
Log.i("TAG", "Position : " + currentItem);
holder.equalizer.setVisibility(View.VISIBLE);
holder.btnPause.setVisibility(View.VISIBLE);
holder.btnPlay.setVisibility(View.INVISIBLE);
Intent intent = new Intent(context, Player.class);
intent.putExtra("URL", tracks.get(position).getMusicurl());
intent.putExtra("ID", tracks.get(position).getId());
context.startService(intent);
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3350 次 |
| 最近记录: |