OnActivityResult содержит предыдущие значения - PullRequest
0 голосов
/ 23 апреля 2020

Я сделал довольно сложное приложение, поэтому я попытаюсь объяснить его шаг за шагом.

У меня есть экран чата, где 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) Новые выбранные элементы

Есть ли причина, по которой он также сохраняет предыдущие результаты?

Я на некоторое время застрял на нем, и я не могу понять, почему кажется, что он вызывается дважды.

Спасибо

...