Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何将数据从一个片段传递到另一个´;它在视图寻呼机中吗?_Android_Android Viewpager_Fragment - Fatal编程技术网

Android 如何将数据从一个片段传递到另一个´;它在视图寻呼机中吗?

Android 如何将数据从一个片段传递到另一个´;它在视图寻呼机中吗?,android,android-viewpager,fragment,Android,Android Viewpager,Fragment,说明: 我有一个活动(父活动),里面有一个片段(父片段)。此片段是选项卡式的,有两个片段(片段A和片段B),可通过查看页面进行更改 父活动将数据发送到父片段,父片段必须将数据带到片段B 问题: 我可以用父片段做什么来将数据带到片段B(位于视图寻呼机内) 额外: 有人告诉我我可以使用界面,我也试过学习,但找不到任何好的教程/解释。Hi@Tomas我就是这样做的 private class ViewPagerAdapter extends FragmentPagerAdapter { p

说明:

我有一个活动(父活动),里面有一个片段(父片段)。此片段是选项卡式的,有两个片段(片段A片段B),可通过查看页面进行更改

父活动将数据发送到父片段,父片段必须将数据带到片段B

问题:

我可以用父片段做什么来将数据带到片段B(位于视图寻呼机内)

额外:


有人告诉我我可以使用界面,我也试过学习,但找不到任何好的教程/解释。

Hi@Tomas我就是这样做的

 private class ViewPagerAdapter extends FragmentPagerAdapter {

    private Fragment fragment1 = Fragment1.getInstance();
    private Fragment fragment2 = Fragmen2.getInstance();

    ViewPagerAdapter(FragmentManager supportFragmentManager) {
        super(supportFragmentManager, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);

    }

    @Override
    public Fragment getItem(int position) {
        if (position == 0) {
            return fragment1;
        } else {
            return fragment2;
        }
    }


    @Override
    public int getCount() {
        return  2 ;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return "";
    }

    Fragment1 getFragment1() {
        return (Fragment1) fragment1;
    }

    Fragment2 getFragment2() {
        return (Fragment2) fragment2;
    }
}
这是我的Fragemnt2代码:

public class Fragment2 extends Fragment {

private TextView text;
public static Fragment2 getInstance() {
    return new Fragment2();
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    return inflater.inflate(R.layout.fragmant_2, container, false);
}

@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
     text = view.findViewById(R.id.text2);

}

public void reloadView(String data){
   text.setText(data);
}



}
从viewpager适配器,我调用faragment 2的方法,如下所示

adapter.getFragment1().reloadView("data");

您好@Tomas您可以将viewpager片段实例存储在父片段中,并使用该片段实例调用子片段中的一个方法,该方法可以更新数据。您好,谢谢您的回答。你能更详细地解释一下吗?@Deepak这实际上会导致生产崩溃,除非你用它来获取片段实例