Definiujesz interface w swoim fragmencie:
public interface Listener {
void onOptionSelected(int option);
}
Rzucasz błędem gdy nie ma implementacji:
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
mCallback = (Listener ) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString()
+ " must implement Listener");
}
}
W swoim kodzie obsługującym kliknięcie użytkownika dodajesz:
mCallback.onOptionSelected(option);
Następnie w Activity implementujesz metodę onOptionSelected w której wysyłasz dane do innego Activity w przykładzie dałem nazwę SecondActivity a w swoim kodzie dajesz swoją nazwę:
public void onOptionSelected(int option) {
Intent myIntent = new Intent(this, SecondActivity.class);
myIntent.putExtra("intSelectedOption", option);
startActivity(myIntent);
}
}
Następnie w tym drugim Activity w onCreate odbierasz dane:
Intent myIntent = getIntent();
int intValue = myIntent.getIntExtra("intSelectedOption", 0);
i wysyłasz je do drugiego fragmentu w przykładzie SecondFragment, a w swoim kodzie dajesz swoja nazwę, oprócz tego dajesz nazwę swojego view zamiast R.id.second_fragment_container:
SecondFragment second = new SecondFragment();
second.setArguments(intValue);
getSupportFragmentManager().beginTransaction().add(R.id.second_fragment_container, second).commit();
na koniec odbierasz w swoim fragmencie w onCreateView dane:
Bundle args = getArguments();