大家好,希望你们都好.我正在开发一个Android应用程序,它将播放不同的动物声音.
我正在使用回收视图,如下面的屏幕截图所示.现在我遇到了一个问题,我的行内有一个播放按钮,每当我从我的项目0播放声音时播放动物的声音,或者任何位置显示我在视图中暂停选项.但每当我点击下一个项目1或任何其他项目时,它都不会更改上一个项目0的图像.
我是通过使用以下代码刷新我的适配器列表来实现的.但我认为这不是一个好习惯.
t1.recyclerView.setAdapter(null);
t1.customAdapter=new CustomAdapter(t1.animalList,ctx);
t1.recyclerView.setAdapter(t1.customAdapter);
Run Code Online (Sandbox Code Playgroud)
我尝试过使用各种各样的东西,notifyItemChanged(oldPosition)但仍然没有得到我想要的结果.
请建议我一个合适的方法来解决这个问题?我是android的新手,我有一个想法,以获取最后一项的视图并保存它然后我得到该视图并在我之前的列表按钮上设置默认图像播放,但我不知道如何做到这一点?
这是我的自定义适配器代码.!
public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.MyViewHolder> {
private List<Animal> AnimalList;
public Context ctx;
public static int postionchange=-1;
public static Tab1Birds t1;
final int[] countLike = {0};
//public static MediaPlayer mediaPlayer2 = new MediaPlayer();
int pos=0;
public class MyViewHolder extends RecyclerView.ViewHolder {
public ImageView display;
public TextView nameTextView;
public ImageButton play,options,menubtn;
public MyViewHolder(View view) {
super(view);
nameTextView = (TextView) view.findViewById(R.id.nameTextView);
play=(ImageButton)view.findViewById(R.id.playbtn);
options=(ImageButton)view.findViewById(R.id.menubtn);
display=(ImageView)view.findViewById(R.id.imageview);
menubtn = (ImageButton) view.findViewById(R.id.menubtn);
//MediaPlayerClass.mediaPlayer= new MediaPlayer(); …Run Code Online (Sandbox Code Playgroud)