我已经实现了一个自定义接口(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/