#android #android-fragments #fragment
Вопрос:
У меня есть два фрагмента, A и B.
Из фрагмента A вызов фрагмента B:
B nextFrag = new B();
nextFrag.setArguments(bundleobj);
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.nav_host_fragment, nextFrag);
transaction.addToBackStack(null);
transaction.commit();
Фрагмент B, когда пользователь нажимает кнопку «Назад»:
FragmentManager fm = getFragmentManager();
fm.popBackStackImmediate();
Но затем загружается фрагмент A, вызывается onCreateView, и внутри onCreateView у меня есть кнопка:
doSomethingBtn..setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
Проблема здесь в том, что onClick запускается при возврате к фрагменту A.
Как это предотвратить?
Ответ №1:
Вместо добавления вложенной OnClickListener
ссылки на кнопку реализуйте ее в своем классе и переопределите метод, чтобы включить случай переключения на основе идентификатора щелкнутого представления. Не забудьте изменить свою кнопку на doSomethingBtn.setOnClickListener(this);
и посмотреть, исправит ли это проблему для вас. Если нет, нам, вероятно, потребуется больше фрагментов из вашего фактического кода, чтобы найти причину.