java - 无法从 fragment 内的接口(interface)获取数据

标签 java android interface fragment

我已经实现了一个自定义接口(interface)来传递数据,如下所示:

public interface OnLectureSelected {
    public void lectureSelected(String videoId,String lectureDescription);
}

在适配器中,我然后使用接口(interface)将数据传递给 Activity 和 fragment :

OnLectureSelected onLectureSelected2 = (OnLectureSelected) context;
onLectureSelected2.lectureSelected(video,description);

Activity 能够按预期接收数据:

class Activity extends AppCompatActivity implements OnLectureSelected{
  …
 @Override
 public void lectureSelected(String videoId, String lectureDescription) {
  //I get the passed details
 }

但是,我无法使用 fragment 获取数据:

class Fragment extends Fragment implements OnLectureSelected{
  …
 @Override
 public void lectureSelected(String videoId, String lectureDescription) {
  //Can't get the passed details
 }

从 fragment 内的界面获取数据的最佳方法是什么?

最佳答案

OnLectureSelected onLectureSelected2 = (OnLectureSelected) context;

这里该对象将仅将值传递给一个已实现的类。要将值传递给 fragment ,您可以在 Activity 类中调用以下方法

@Override
    public void lectureSelected(String videoId, String lectureDescription) {
        //Can't get the passed details
        List<Fragment> fragments = getSupportFragmentManager().getFragments();
        if (fragments != null) {
            for (Fragment fragment : fragments) {
                if(fragment instanceof FragmentClasas) {
                    fragment.lectureSelected(video,description);
                }
            }
        }
    }

关于java - 无法从 fragment 内的接口(interface)获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58521036/

相关文章:

android - Admob 广告无法加载状态详细信息 有限的广告服务

layout - 单击前是否有带有可见列的滑动菜单?

android - 在 ScrollView 中,RelativeLayout 子高度为 0

php - 为什么这个实现不被 PHP 认为与其接口(interface)兼容?

java - 使用构造函数注入(inject)的 spring @RestController 中的空异常 @Service

java - java的UTF-8字符串类

java - BiMap单个函数将值转换为连接的字符串值?

java - Spring Boot 应用程序监听器未调用

interface - 抽象如何实现接口(interface)?

java - 当两个类实现同一个接口(interface)时