Вернуться к фрагменту из действия - PullRequest
1 голос
/ 09 ноября 2019
  • У меня есть MainActivity с BottomNav, который включает в себя 3 фрагмента A, B и C.

  • Из фрагмента A, Я могу перейти к Деятельности A и от, Активность AI может перейти к Деятельности B.

  • Теперь Я хочу вернуться конкретно к Фрагменту A из Деятельности B, нажавa Кнопка «Назад» во время пропуска Занятия А.

  • Я пробовал Intent.FLAG_ACTIVITY_CLEAR_TASK в Занятии А перед запуском Занятия Б, а также явно запустил Намерение на MainActivityиз упражнения B, но это не дает желаемого результата, и, конечно, это не кажется эффективным способом сделать это. Как мне вернуться к фрагменту?

Ответы [ 4 ]

0 голосов
/ 09 ноября 2019

Случай 1

Вы должны завершить действие А после запуска намерения.

Intent intent = new Intent(ActivityB.this,ActivityA.class);
startActivity(intent);
finish(); 

case 2

Если вы хотите вернуться к занятию A в какой-то момент, тогда вам нужно передать какой-нибудь флаг из занятия B в A. Изапустите этот код в начале своей деятельности A.

if(extras.getBoolean("NameOfFlag", false))
    {
       ActivityA.finish();
    }

отправьте флаг, используя этот код.

Intent i = new Intent(ActivityB.this, ActivityA.class);
i.putExtra("NameOfFlag", true);
startActivity(i);
finish();

Не забудьте finish() Деятельность, когда вам не нужно приходитьобратно. В этом случае ActivityB.

0 голосов
/ 09 ноября 2019

// Внутри onCreate для каждого действия: //

getSupportActionBar().setTitle("name of the Activity here"); 
getSupportActionBar().setDisplayHomeAsUpEnable(true);

// затем перейдите к файлу манифеста в //

// до этогозакрывающая скобка устанавливает порядок вашей деятельности;пример (у вас есть три действия: основное действие, действие 2, действие 3) //

<activity android:name=".Activity2" 
android:parentActivityName=".MainActivity"></activity>

0 голосов
/ 09 ноября 2019

То, что вы можете сделать, - это когда вы запускаете ActivityB из ActivityA, просто заканчиваете активность ActivityA методом finish ().

Intent intent = new Intent(ActivityB.this,ActivityA.class);
startActivity(intent);
finish();

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

0 голосов
/ 09 ноября 2019

Возможно, это не идеальное решение, но оно должно работать

В Деятельности B

@Override
public void onBackPressed() {   
   Intent i = new Intent(ActivityB.this, MainActivity.class);
   i.putExtra("cameFromActivityB", true);
   startActivity(i);
 }

В Основной Деятельности

@Override
protected void onCreate(Bundle savedInstanceState) {
    Bundle extras = getIntent.getExtras();
    if(extras.getBoolean("cameFromActivityB", false))
    {
       loadFragmentA();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...