gpt4 book ai didi

java - 如何在recycler View 中访问MainActivity的组件来制作onclick监听器?

转载 作者:行者123 更新时间:2023-12-01 16:48:39 25 4
gpt4 key购买 nike

enter image description here

我创建了类似 YouTube 的应用程序,其中包含一个视频 View (顶部)和回收器 View (视频 View 下方)。我陷入困境,我想在 recyclerview 项目上创建 onclicklistner 并更改视频路径来更改视频,但是如何访问适配器类中的 videoview 组件(在 mainactivity 中创建)来设置 videoview 的路径?

最佳答案

定义项目点击事件的接口(interface):

interface OnAdapterItemClickListener {
void onAdapterItemClickListener(int position);
}

让您的 Activity 实现并重写其方法:

public class MaiActivity extends AppCompatActivity implements OnAdapterItemClickListener {

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
RecyclerView recyclerView = findViewById(R.id.recyclerView);
recyclerView.setAdapter(new Adapter(this));
}

@Override
public void onAdapterItemClickListener(int position) {
//CALL YOUR VIDEO PLAYER OR ANY OTHER COMPONENT AND VIEW
}

}

在你的Adapter和ViewHolder中为每个ViewHolder定义一个点击监听器然后调用我们定义的接口(interface)。

public class Adapter extends RecyclerView.Adapter<Adapter.MyViewHolder> {

private OnAdapterItemClickListener adapterItemClickListener = null;

public Adapter(OnAdapterItemClickListener listener) {
this.adapterItemClickListener = listener;
}

class MyViewHolder extends RecyclerView.ViewHolder implements OnClickListener {

public MyViewHolder(@NonNull View itemView) {
super(itemView);
itemView.setOnClickListener(this);
}

@Override
public void onClick(View v) {
adapterItemClickListener.onAdapterItemClickListener(getAdapterPosition());
}
}


}

关于java - 如何在recycler View 中访问MainActivity的组件来制作onclick监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61733698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com