Как я могу переключаться между фрагментами одним нажатием кнопки и передавать данные друг от друга? - PullRequest
0 голосов
/ 30 апреля 2019

Это код, с которым я сейчас имею дело - нам дали его во время урока, и я не совсем понял его, и я пытаюсь сделать это и добавить некоторые функции - вот почему я здесь.

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, сохранить данные в текстовом поле, открыть новую вкладку (фрагмент) и перенести туда данные. Они все в одной деятельности.

Как я мог пойти об этом?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...