我有4个片段,我试图点击FragmentA上的一个按钮并调用一个方法来改变FragmentB上某些视图的可见性并填充它。
我尝试了一个界面,但我似乎无法让它在2个片段之间工作。如果我在活动中实现它,我可以从片段调用接口方法,但我不能在片段中实现它并在片段中调用它。
有不同的方法吗?我认为我不能使用static关键字。
答案 0 :(得分:0)
我建议您可以使用广播接收器,很好地在任何地方执行操作并且易于使用。 在你的第一个片段中你可以定义接收器,你可以从另一个片段发送广播或动作。
示例如下。
在您要更新视图的第一个片段中编写以下代码,
private void registerReciver() {
broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent != null && intent.getAction().equals("UPDATE_FRAG_A")) {
// here you can fire your action which you want also get data from intent
}
}
};
IntentFilter intentFilter = new IntentFilter("UPDATE_FRAG_A");
getActivity().registerReceiver(broadcastReceiver, intentFilter);
}
在你的第二个片段中写下以下代码进行激活操作,
Intent intent=new Intent();
// Here you can also put data on intent
intent.setAction("UPDATE_FRAG_A");
getActivity().sendBroadcast(intent);
答案 1 :(得分:0)
假设所有片段都处于相同的活动中。
有关更多信息,请参阅Communicating with Other Fragments