Передайте строковое значение из FragmentContainerView в действие при нажатии кнопки

#java #android #fragment

Вопрос:

Я создал FragmentContainerView под названием GamePadFragment в MainActivity, и я хотел бы получить данные из фрагмента в основное действие. Поскольку FragmentContainerView является относительно новым методом. Я не могу найти много информации об этом.

Я разместил несколько кнопок на экране фрагментконтейнера. Могу ли я узнать, как получить передачу данных (строку) из фрагмента при нажатии на кнопку в окне FragmentContainerView.

 String Pass:

from the `GamePadFragment` (FragmentContainerView) --> the Activity holding it

on button clicks
 

Текущий код в основной деятельности выглядит следующим образом:

 FragmentContainerView gamePadFragment;

public MainActivity() {
    super(R.layout.activity_main);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    gamePadFragment = findViewById (R.id.gamePadFragment);

    if (savedInstanceState == null) {
        getSupportFragmentManager().beginTransaction()
                .setReorderingAllowed(true)
                .add(R.id.gamePadFragment, GamePadFragment.class, null)
                .commit();
    }

    // Set Default Appearance
    //int wd = gamePadFragment.getWidth();
    //gamePadFragment.setLayoutParams(new RelativeLayout.LayoutParams(wd, wd));
}
 

Ответ №1:

Используйте обратный вызов

 interface MyCallback{
   void click(String data);
}
 

Действие реализует этот интерфейс

 class MyActivity implements MyCallback
 

отправьте делегат своему фрагменту,
вызовите функцию обратного вызова в своем фрагменте