Я сделал довольно сложное приложение, поэтому я попытаюсь объяснить его шаг за шагом.
У меня есть экран чата, где 2 человека могут отправлять сообщения, а сверху - ToggleButton
. Когда пользователь нажимает ToggleButton
, и действие начинается с вызова: startActivityForResult(intent,1);
.
В новом действии пользователь выбирает элементы из списка и нажимает DONE
. Когда пользователь нажимает эту кнопку, выбранные им элементы переносятся обратно в чат, вызывая
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1) {
if(resultCode == ChatActivity.RESULT_OK){
confirmedItems = (ArrayList<Items>)data.getSerializableExtra("items");
DateInMillis = data.getLongExtra( "dateInMillis", System.currentTimeMillis());
}
if (resultCode == ChatActivity.RESULT_CANCELED) {
}
}
}
Теперь, в приложении у меня есть другие действия, такие как profile activity
, search
, которые я могу получить к ним из моего чата, используя:
BottomNavigationView bottomNavigationView = findViewById(R.id.bottom_navigation);
bottomNavigationView.setSelectedItemId( R.id.nav_profile );
bottomNavigationView.setOnNavigationItemSelectedListener( item -> {
switch (item.getItemId()) {
case R.id.nav_profile:
startActivity(new Intent(ChatActivity.this, ProfileActivity.class));
break;
case R.id.nav_home:
startActivity(new Intent(ChatActivity.this, DiscoverActivity.class));
break;
case R.id.nav_search:
startActivity(new Intent(ChatActivity.this, SearchActivity.class));
break;
}
return true;
} );
Допустим, я вошел в чат и нажал ToggleButton
, но не выбрал ни одного элемента. Вместо этого я go вернулся к профилю активности. Затем я возвращаюсь в чат и продолжаю процесс. В этом случае по какой-то причине создается впечатление, что приложение добавляет 2 вещи:
1) Элементы, которые были выбраны в последний раз
2) Новые выбранные элементы
Есть ли причина, по которой он также сохраняет предыдущие результаты?
Я на некоторое время застрял на нем, и я не могу понять, почему кажется, что он вызывается дважды.
Спасибо