У меня есть активность, которая передает обновленную информацию из моей EditBook
активности в мою MainActivity
через намерение.
Кнопка для EditBook
:
FloatingActionButton fab = findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String title = mTitle.getText().toString();
String author = mAuthor.getText().toString();
String publisher = mPublisher.getText().toString();
Intent replyIntent = new Intent();
replyIntent.putExtra(EXTRA_ID, getIntent().getIntExtra(EXTRA_ID, -1));
replyIntent.putExtra(EXTRA_TITLE, title);
replyIntent.putExtra(EXTRA_AUTHOR, author);
replyIntent.putExtra(EXTRA_PUBLISHER, publisher);
replyIntent.putExtra(EXTRA_ISBN, getIntent().getStringExtra(BookView.EXTRA_ISBN));
setResult(RESULT_OK, replyIntent);
finish();
}
});
И мой принимающий конец в OnActivityResult
:
if (data.getIntExtra(EditBook.EXTRA_ID, -1) != -1) {
Book book = new Book(data.getIntExtra(EditBook.EXTRA_ID, -1), data.getStringExtra(EditBook.EXTRA_TITLE),
data.getStringExtra(EditBook.EXTRA_AUTHOR), data.getStringExtra(EditBook.EXTRA_PUBLISHER),
"1", data.getStringExtra(EditBook.EXTRA_ISBN));
try {
asyncWait = mBookViewModel.update(book);
spinner.setVisibility(View.GONE);
Toast.makeText(getApplicationContext(), R.string.book_saved, Toast.LENGTH_LONG).show();
Intent intent = getIntent();
finish();
startActivity(intent);
} catch (ExecutionException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
Переменная asyncWait
просто собирает результат из AsyncTaskтак что мой пользовательский интерфейс будет обновлен.
Книга, которую я пытаюсь отредактировать, имеет название «1984 (signetClassic)».В своей работе EditBook
я изменяю это на «1984» и нажимаю кнопку «Сохранить плавающее действие».Когда я шагаю по отладчику, title
показывает правильный заголовок, replyIntent
mMap показывает правильный заголовок, но когда я проверяю данные в MainActivity, заголовок возвращается к «1984 (signetClassic)».Есть идеи, почему дополнения Intent меняются при отправке?
Дайте мне знать, если вам нужна дополнительная информация.