Как гласит заголовок, я пытаюсь запустить фрагмент из другого фрагмента с помощью кнопки.Это не должно быть слишком сложной задачей, но здесь я борюсь.Когда я нажимаю кнопку, чтобы запустить фрагмент, он просто дает мне экран фрагмента по умолчанию, а не тот, который я сделал.
Не уверен на 100%, что делать в данный момент. Я
Удостоверился, что .OnFragmentInteractionListener был реализован в моей основной деятельности для фрагмента
Попытка загрузить известный хороший фрагмент, и это не удалось.Приводит меня к мысли, что я не запускаю фрагмент правильно.
Никаких ошибок не возникает
Обновление: Попытка реализовать интерфейс для связи с фрагментомот деятельности.Реализован интерфейс для активности, но мне нужен метод fragOut (), вызываемый, когда OnClick запускается из фрагмента.Не уверен, что делать, что раньше не работало с интерфейсами.
Обновление 2: Сделан интерфейс и я пытаюсь заставить его запустить мой метод, который запускает другой фрагмент.Тем не менее, я получаю эту ошибку при попытке вызвать метод
Update3: сделал интерфейс здесь Использование интерфейса для связи от фрагмента к активности и вытолкнул все необходимое для создания фрагмента внутри вызова метода интерфейсав действии.
FATAL
java.lang.NullPointerException: Attempt to invoke interface method
'void rangers.socman.BattleRhythmFrag$doubleFrag.fragOut()' on a null
object reference
at rangers.socman.BattleRhythmFrag.onClick(BattleRhythmFrag.java:149)
OnClick () от кнопок хостинга фрагмента
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.newBattle:
{
doubleFrag testFrag;
testFrag.fragOut();
}
case R.id.editBattle:
{
EditBattleFrag editBattleF = new EditBattleFrag();
getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.home_content,editBattleF,editBattleF.getTag()).addToBackStack(null).commit();
}
case R.id.deleteBattle:
{
DeleteBattleFrag deleteBattleF = new DeleteBattleFrag();
getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.home_content,deleteBattleF,deleteBattleF.getTag()).addToBackStack(null).commit();
}
break;
default:
{
}
}
}
Интерфейс, созданный на кнопках хостинга фрагмента
public interface doubleFrag {
void fragOut(Context context);
}
Интерфейс, реализованный на основном занятии
@Override
public void fragOut() {
NewBattleFrag test = new NewBattleFrag();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.home_content,test);
transaction.addToBackStack(null);
transaction.commit();
}