单击按钮如何在片段之间切换并相互传输数据?

时间:2019-04-29 21:25:57

标签: android android-fragments android-viewpager adapter fragmentpageradapter

这是我现在正在处理的代码-我们在上课时得到了它,但我并未完全理解它,而我也试图这样做并添加一些功能-这就是我在这里的原因。

MAIN ACTIVITY:
ViewPager viewPager = findViewById(R.id.viewPager);
FragmentAdapter adapter = new FragmentAdapter(getSupportFragmentManager(), MainActivity.this);


viewPager.setAdapter(adapter);
TabLayout tab = findViewById(R.id.tabLayout);
tab.setupWithViewPager(viewPager);

这是我的主要活动类,链接到activity_main.xml。一切都在onCreate方法中。

我将FragmentAdapter与viewPager一起使用,因此采用了它的参数,例如。字符串tabTitle []。

Fragment类使用不同的.xml,layout_page。

FragmentAdapter类如下:

public class FragmentAdapter extends FragmentPagerAdapter {
    final int PAGE_COUNT = 3;
    private String tabTitle[] = new String[] {"TAB1", "TAB2", "TAB3"};
    private Context context;

    public FragmentAdapter(FragmentManager fm, Context context) {
        super(fm);
        this.context = context;
    }

    @Override
    public Fragment getItem(int i) {
        return PageFragment.newInstance(i);
    }

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

    @Nullable
    @Override
    public CharSequence getPageTitle(int position) {
        return tabTitle[position];
    }
}

实际的PageFragment类:

public class PageFragment extends Fragment {
    public static final String ARG_PAGE="ARG_PAGE";
    private int page;

    public static PageFragment newInstance(int page) {
        Bundle args = new Bundle();
        args.putInt(ARG_PAGE, page);

        PageFragment fragment = new PageFragment();
        fragment.setArguments(args);

        return fragment;
    }

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        page = getArguments().getInt(ARG_PAGE);
    }

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {


        View view = inflater.inflate(R.layout.fragment_page, container, false);
        TextView textView = view.findViewById(R.id.textView);
        textView.setText("Fragment " + page);


        return view;
    }
}

我想在片段0(TAB 1)上添加一个按钮,并在EditText上添加一个文本,并使用onclicklistener将数据保存在文本字段中,打开一个新的选项卡(片段)并在那里传输数据。他们都在同一活动上。

我该怎么办?

0 个答案:

没有答案