我是堆栈溢出的初学者,这是我的第一个问题,我无法解决这个问题。所以,如果我对这个网站了解不多,那么在此之前请原谅。
问题是:
我想从活动中点击一个recyclerView适配器项目的特定视图,而不是从自己的适配器点击,有点像从适配器点击实施到调用此适配器的活动。
感谢阅读这篇不明确的文字:)
答案 0 :(得分:2)
如果我理解正确,您可以使用界面获得目标。 您的适配器应包含Click事件的侦听器实例。
public class MyAdapter extends RecyclerView.Adapter {
OnAdapterClickListener onAdapterClickListener;
public MyAdapter(OnAdapterClickListener onAdapterClickListener) {
this.onAdapterClickListener = onAdapterClickListener;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(onAdapterClickListener != null) {
onAdapterClickListener.onViewClicked(view);
}
}
});
}
}
接口应该是这样的:
public interface OnAdapterClickListener {
void onViewClicked(View view);
}
最后你的活动必须实现界面:
public class MainActivity implements OnAdapterClickListener {
private MyAdapter myAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myAdapter = new MyAdapter(this);
}
@Override
public void onViewClicked(View view) {
}
}
现在,您可以在Activity中实现OnClickListener。