Я создал приложение с действием, в котором пользователь выбирает элементы из списка, ставит флажок и затем нажимает кнопку Конец.
Когда он нажимает кнопку Конец, он возвращается к предыдущему действию, где я читал в нем, какие элементы он выбрал из списка, используя 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) {
}
}
}