gpt4 book ai didi

android - 如何在 ActionProvider 和主要 Activity 中进行通信

转载 作者:太空狗 更新时间:2023-10-29 14:17:50 25 4
gpt4 key购买 nike

我正在尝试使用自定义 ActionProvider,下面是代码,但我不知道如何控制 MainActivity 中的 View ,如何在下面的代码“OnClick”函数中控制 MainActivity 中的组件?

public class CustomActionProvider extends ActionProvider {
Context mContext;
public CustomActionProvider(Context context) {
super(context);
mContext = context;
}

@Override
public View onCreateActionView(MenuItem forItem) {
LayoutInflater layoutInflater = LayoutInflater.from(mContext);
View view = layoutInflater.inflate(R.layout.actionbar,null);
Button red = (Button)view.findViewById(R.id.button_red);

red.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
//What should I put here to control components of MainActivity

}
}
);
return view;
}

最佳答案

对于 ActionProvider 与 Activity 的通信,我看到了 2 种解决方案:

1) 使用 LocalBroadcastManager。从 ActionProvider 发送广播 Intent,并在 Activity 中实现 BroadcastReceiver。数据必须是可打包/可序列化的。

2) 在您的 ActionProvider 上创建一个公共(public)方法来设置监听器。在 Activity 的 onCreateOptionMenu() 方法中从 MenuItem 中检索 ActionProvider 实例,并调用 setListener() 方法来设置 Activity 的监听器。

关于android - 如何在 ActionProvider 和主要 Activity 中进行通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20040637/

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