gpt4 book ai didi

android - 回收站 View 适配器中的选项菜单

转载 作者:行者123 更新时间:2023-11-29 15:34:28 26 4
gpt4 key购买 nike

我想问一下我如何从适配器回收器 View 调用 Activity 中的方法。

enter image description here

在函数 buildRecyclerView 中设置适配器:

private void buildRecyclerView() {
offerAdapter = new OfferAdapter();
recyclerView.setAdapter(offerAdapter);
}

OfferAdapter.java 类中,为每个项目创建了子菜单,并使用 onMenuItemClickListener:

@Override
public void onBindViewHolder(NoteHolder holder, int position) {
PopupMenu popup = new PopupMenu(mCtx, holder.button);
popup.inflate(R.menu.menu);
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
// TODO here I want to call delete item in MyOfferFragment.java
}

主要问题:如何从 *onMenuItemClickListnere* 调用 *MyOfferFragment* 中的函数。

非常感谢您

最佳答案

您可以在通过 fragment 或 Activity 实现的构造函数中传递一个监听器对象

/**
* item click interface of adapter
*/
public interface OfferAdapterListener {
void onItemClick(int position)
}

这个接口(interface)由fragment实现

/**
* On item clicked Implement Method from adapter listener.
*
* @param position
*/
@Override
public void onItemClick(int position) {
// Here you can call that method
}

然后在适配器的构造函数中传递此监听器。

private void buildRecyclerView() {
offerAdapter = new OfferAdapter(this);
recyclerView.setAdapter(offerAdapter);
}

在构造函数中,你可以这样赋值

 private OfferAdapterListener mOfferAdapterListener;
public OfferAdapter(OfferAdapterListener mOfferAdapterListener) {
this.mOfferAdapterListener = mOfferAdapterListener
}
}

现在你可以像这样在anyViwe上设置点击监听器来使用这个监听器

holder.button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mOfferAdapterListener.onItemClick(position);
}
});

返回调用实现该方法的onItemClick方法。

您可以像上面那样在构造函数中传递 Activity 或 fragment 上下文,然后像这样通过引用调用它

((MainActivity) mActivity).methodName(arguments);

这是您在构造函数中传递的 mActivity 引用上下文。

关于android - 回收站 View 适配器中的选项菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54322219/

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