Сбросить значения в onActivityResult - PullRequest
0 голосов
/ 16 апреля 2020

Я создал приложение с действием, в котором пользователь выбирает элементы из списка, ставит флажок и затем нажимает кнопку Конец.

Когда он нажимает кнопку Конец, он возвращается к предыдущему действию, где я читал в нем, какие элементы он выбрал из списка, используя onActivityResult.

Моя проблема в том, что если, например, пользователь выбирает Item1 + Item2, а затем во 2-й раз он выбирает Item3 only , он покажет мне, как он выбрал Item1 + Item2 + Item3.

По какой-то причине он сохраняет Item1 + Item2, даже если это было в предыдущей активации.

Как их очистить?

Я пробовал это (setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK)):

Intent confirmedData = new Intent();
confirmedData.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
confirmedData.putExtra( "confirmedItems", (Serializable) itemsSelected );
confirmedData.putExtra( "dateInMillis",DateInMillis );
setResult(ChatActivity.RESULT_OK,confirmedData);

finish();

Мой OnActivityResult:

@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("confirmedItems");
            DateInMillis = data.getLongExtra( "dateInMillis", System.currentTimeMillis());

        }
        if (resultCode == ChatActivity.RESULT_CANCELED) {

        }
    }
}
...