gpt4 book ai didi

java - 如何通过重写接口(interface)实现Fragment-Activity通信?

转载 作者:行者123 更新时间:2023-12-02 10:07:00 24 4
gpt4 key购买 nike

我有一个应用程序,其中的 Activity 启动各种 fragment 。这些 fragment 需要与父 Activity 进行通信,在本例中以 HashMap 的形式发送一些数据。

为了让 fragment 将数据发送回父 Activity ,我尝试实现一个接口(interface),建议here并使用this教程以获取更多信息。这是我的 fragment 和 Activity 的代码。

Activity

public class MyActivity extends AppCompatActivity {

@Override // Error comes up here
public void sendDataToActivity(HashMap<Integer, Boolean> myHashmap){
// do whatever I need here
}
}

fragment

public class MyFragment extends Fragment {

private MyInterface dataPasser;

public interface MyInterface {
public void sendDataToActivity(HashMap<Integer, Boolean> myHashmap);
}

@Override
public void onAttach(Context context) {
super.onAttach(context);
if (context instanceof MyInterface){
dataPasser = (MyInterface) context;
}
}

}

我收到的错误是“方法不会覆盖或实现父类(super class)型的方法”。据我所知,这意味着我的 Activity 中接口(interface)的实现是错误的,并且不能完全使其与 fragment 中的接口(interface)链接;但我已经尝试解决这个问题有一段时间了,在这里查看了各种答案,但一直无法找到让它发挥作用的方法。

可能有用的额外信息是 MyActivity 包含一个 TabLayout,其中填充了 MyFragment 的各种实例,我不知道这是否可能有什么关系。

请随时询问更多信息、代码说明或向我指出有帮助的答案。

最佳答案

您需要让 Activity 实现您的界面

public class MyActivity extends AppCompatActivity implements MyInterface

关于java - 如何通过重写接口(interface)实现Fragment-Activity通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55281865/

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