Использование интерфейса для запуска фрагмента из другого фрагмента - PullRequest
0 голосов
/ 17 июня 2019

В моей исходной теме Запуск фрагмента из фрагмента приводит к отображению экрана по умолчанию Было определено, что мне нужно реализовать интерфейс для запуска моего второго фрагмента.

Достаточно просто, я реализовал интерфейсв моей деятельности и определил его в моем фрагменте.Однако, когда я запускаю метод моего интерфейса для запуска нового фрагмента, он дает мне это

 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:151)

Обновление: исправлен код, связанный с интерфейсом, и это решило мою проблему Использование интерфейса для связи от фрагмента кактивность

Проходя через предложение, человек сказал, что я должен передать «это», чтобы фрагмент знал, что интерфейс должен взаимодействовать с деятельностью, имеет смысл.Я искал повсюду в Интернете и не могу найти никого, кто запускает фрагменты через интерфейсы.Это всегда передача / извлечение данных во фрагмент.Есть идеи?

Интерфейс определения фрагмента

    @Override
public void onClick(View v) {


    switch(v.getId()){


        case R.id.newBattle:
        {
             // public doubleFrag testFrag
             testFrag.fragOut();
        }

        case R.id.editBattle:
        {

        }

        case R.id.deleteBattle:
        {

        }

        break;
        default:
        {

        }
    }
}

   public interface doubleFrag {
     void fragOut();
   }

Деятельность, в которой реализован интерфейс

 @Override
public void fragOut() {

    NewBattleFrag test = new NewBattleFrag();

    FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
    transaction.replace(R.id.home_content,test).addToBackStack(null).commit();

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...