gpt4 book ai didi

android - 使用接口(interface)监听器将数据从 Activity 发送到 fragment

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:52:00 25 4
gpt4 key购买 nike

我正在尝试将数据从 Activity 发送到 fragment 。 我没有将数据从 fragment 发送到 Activity 。除了在 Activity 中实例化接口(interface)监听器对象之外,我已经正确设置了所有内容。

public class Activity extends AppCompatActivity {

private FragmentInterface fragmentInterfaceListener;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

// This line below is actually in a button onClick()
fragmentInterfaceListener.sendDataMethod(dataToSend);

}

public interface FragmentInterface {
void sendDataMethod(SampleData sampleData);
}
}

然后在 fragment 中,我有:

public static class CustomFragment extends Fragment implements Activity.FragmentInterface {

@Override
public void sendDataMethod(final SampleData sampleData) {

}
}

当我在按钮 onClick() 中放置日志行时,单击按钮时会出现日志行。不,我不会将 sampleData 放入 fragment 包中。是的,我需要通过接口(interface)发送数据。那么如何在Activity中正确实例化fragmentInterfaceListener对象呢?我是否遗漏了 Activity 或 CustomFragment 中的任何其他内容?

最佳答案

您在这里缺少的是注册部分。

fragment 必须向 Activity 监听器注册自身,以便 Activity 在事件发生时发送数据。为此,在 Activity 中创建一个方法

private void setOnDataListener(FragmentInterface interface){
fragmentInterfaceListener=interface;
}

然后在您的 fragment 的 oncreate 中像这样设置监听器

((YOUR_ACTIVITY_NAME)getActivity()).setOnDataListener(this);

关于android - 使用接口(interface)监听器将数据从 Activity 发送到 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46576251/

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