Я видел в вашем коде, что второе действие называется SecondaActivity, а не SecondActivity. Я предположил, что это неправильно написано, и мой код отражает последний.
Вы можете начать второе действие, используя (someRequestCode - это просто случайное int, которое вы можете выбрать):
Intent intent = new Intent(this, SecondActivity.class);
startActivityForResult(intent, someRequestCode);
Затем во втором упражнении вы можете вернуть OK в случае 2 и KO в других случаях (просто для простоты. Если вы хотите проработать немного больше своего ответа, вы можете добавить немного больше):
case R.id.bottom_two:
//need to return to MainActivity which selected TwoFragment
Intent data = new Intent();
data.putExtra("key", "value"); // You can add data if needed. For example, number of fragment to be changed
setResult(RESULT_OK, data);
finish();
break;
И, наконец, в вашей MainActivity переопределите onActivityResult (someRequestCode - это то же значение, что указано ранее):
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == someRequestCode) {
if (resultCode == RESULT_OK) {
// Here you can get key, value pair from extra and act accordingly
selectFragment(new TwoFragment());
} else {
// Do something else
}
}
}