Witam.
Mam mainActivity i dwa fragmenty (LoginFragment & RegisterFragment). Chciałbym zmieniać te fragmenty na buttony, które znajdują się w ich środku. Wiem jak zmienić fragmenty jeśli buttony są w activity, ale jesli sa we fragmentach to nie mam pojęcia. Przeszukałem mase tutoriali oraz stackover ale nic nie mogę znaleźć. Proszę o jakieś naprowadzenie lub jakieś linki. Dziękuję z góry.
Cześć. Ja robiłem to przy użyciu interfejsu zdefiniowanego we fragmencie. Jeśli button został naciśnięty, przesyłałem informację o tym do Activity, a Activity podmieniało fragment.
Zdefiniuj sobie we fragmencie interfejs, cós w stylu
private FragmentListener listener;
public interface FragmentListener{
void onFragmentItemClick(int position);
}
następnie po naciśnięciu przycisku we fragmencie odpal ten interfejs
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
listener.onFragmentItemClick(i);
}
});
Oczywiście kod który tu podesłałem pochodzi z mojego programu, także zamiast tam przycisku jest jakiś ListView itp, dlatego będziesz musiał tam pozamieniać na button itp itd. Zasada ta sama. W Activity zaimplementuj ten interfejs, zaimplementuj metodę i ustaw odpowiednią akcję po jej wywołaniu, w tym przypadku podmiana fragmentów.
Cześć, proponuję zajrzeć do navigation component który ułatwia sporo pracy, przede wszystkim nie trzeba się męczyć z transakcjami i zarządzaniem fragment menadżerem
https://developer.android.com/guide/navigation/navigation-getting-started
i codelab który Ci wszystko wyjaśni
https://codelabs.developers.google.com/codelabs/android-navigation/#0
nawigacja jest później prosta jak konstrukcja cepa , we fragmencie piszesz sobie
findNavController().navigate(R.id.action_loginFragment_to_RegisterFragment)// czy jak tam sobie podefiniujesz transakcje