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

У меня есть два разных вида деятельности, A & B. Оба имеют NavigationDrawer, похожи друг на друга, но не одинаковы, потому что я не смог получить идентификатор макета выдвижного ящика действия A в действии B.

Оба упражнения имеют по 3 фрагмента (всего 6).

NavigationDrawer содержит все фрагменты только класса деятельности А. Моя проблема в том, что, когда я нахожусь в действии B и пытаюсь открыть один фрагмент действия A из ящика навигации, он выдает ошибку

No view found for id 0x7f090047 (com.wlodsgn.bunbunup:id/linear) for fragment FmMenu{b1e537f0 #0 id=0x7f090047}

Как мне этого добиться?

1 Ответ

0 голосов
/ 18 апреля 2019

Я создал намерение во втором упражнении и запустил упражнение A с информацией о вызываемом фрагменте.

Intent i = new Intent(this, ActivityClass.class);
i.putExtra("frgToLoad", "FRAGMENT_A");
startActivity(i);

Теперь внутри занятия A проверил дополнительное и загрузил нужный фрагмент:

OnCreate(){
...
if (getIntent().getExtras() != null) {
String intentFragment = getIntent().getExtras().getString("frgToLoad");

switch (intentFragment){
    case "FRAGMENT_A":
        // Load corresponding fragment
        break;
    case "FRAGMENT_B":
        // Load corresponding fragment
        break;
    case "FRAGMENT_C":
        // Load corresponding fragment
        break;
   }
}
}

Прежде чем я попытаюсь присвоить значение intentFragment, нужно проверить, является ли намерение пустым или нет.Это связано с тем, что эта строка кода вызывается независимо от того, пришла я от операции B или нет, и выдает ошибку, если намерение равно нулю.

кредит: https://stackoverflow.com/a/36064344/3380537

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