Я пытаюсь реализовать прослушиватель во фрагменте, который позволяет мне узнать, изменяются ли данные внутри родительской активности.
Внутри MainActiivty я добавил следующие строки кода:
public ListenFromActivity activityListener;
public void setActivityListener(ListenFromActivity activityListener) {
this.activityListener = activityListener;
}
Затем я добавил эти строки внутри метода onCreate в MainActivity:
ConnectFragment connectFragment = new ConnectFragment ();
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().replace(R.id.content_frame,connectFragment ).commit();
// this for is used to change data for testing
for(int i=0; i<5;i++){
activityListener.doSomethingInFragment(1+"");
}
В ConnectFragment я сначала добавил реализованный интерфейс:
public class ConnectFragment extends Fragment implements ListenFromActivity
Затем внутри метода onCreate я добавил следующие строки:
((HomeActivity) getActivity()).setActivityListener(ConnectFragment.this);
И затем я реализовал метод в моем взаимодействии
@Override
public void doSomethingInFragment(String str) {
System.out.println(" listener from connectFragment "+ str);
}
Наконец, это мой интерфейс:
public interface ListenFromActivity {
void doSomethingInFragment(String str);
}