gpt4 book ai didi

android - 在另一个类中获取 recyclerview 监听器

转载 作者:行者123 更新时间:2023-11-29 01:24:38 26 4
gpt4 key购买 nike

我有一个显示 ImageView 的主要 Activity ,在其下方显示一个 RecyclerView。在 RecyclerView 的适配器中,我在 View 持有者上实现了 onClickListner,它工作正常。

但是,当单击按钮时,我需要单击以在主要 Activity 中设置图像,但无论如何我都看不到在主要 Activity 中实现监听器以将结果从适配器获取到主要 Activity 。我尝试使用 onClick 如下所示,但这给出了一个空指针异常

class AddVideoTitleViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
TextView TitleScreenTitle;
ImageView TitleScreenImage;

public AddVideoTitleViewHolder(View itemView) {
super(itemView);

TitleScreenTitle = (TextView) itemView.findViewById(R.id.AddVideoTitleSingleRowTextView);
TitleScreenImage = (ImageView) itemView.findViewById(R.id.AddVideoTitleSingleRowImageView);
TitleScreenImage.setOnClickListener(this);

}

@Override
public void onClick(View v) {

final ImageView TitleImage = (ImageView) v.findViewById(R.id.TitleImageimageView);
AddTitlesInformation current = data.get(getAdapterPosition());
TitleImage.setImageResource(current.titleImageId);

}

感谢帮助

最佳答案

我几乎所有的回收站 View 都使用一个界面。方法如下:

1.我创建一个接口(interface)类:

public interface IRecyclerViewCallbacks {
public void onClick(Object object);
}

2.当我创建适配器时,我为 IRecyclerViewCallbacks 对象添加了一个参数:

public class ExampleAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {

private ArrayList<Model> mData;
private IRecyclerViewCallbacks mCallbacks;

public ExampleAdapter (@NotNull ArrayList<Model> data, @NotNull IRecyclerViewCallbacks callbacks) {
mData= data;
mCallbacks = callbacks;
}
}

3. 在适配器内的 onClick 监听器中,我调用 mCallbacks.onClick(object)。在你的情况下是这样的

@Override
public void onClick(View v) {
AddTitlesInformation current = mData.get(getAdapterPosition());
mCallbacks.onClick(current.titleImageId);
}

4.最后,当我创建适配器时,我将一个匿名 IRecyclerViewCallback 对象传递给它。在你的情况下是这样的:

ExampleAdapter adapter = new ExampleAdapter(mData, new IRecyclerViewCallbacks() {
@Override
public void onClick(Object object) {
int titleImageRes = (int) object;
final ImageView TitleImage = (ImageView) v.findViewById(R.id.TitleImageimageView);
TitleImage.setImageResource(titleImageRes);
}
});

关于android - 在另一个类中获取 recyclerview 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34719302/

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