我有一个活动,该活动通过Intent将更新的信息从我的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收集结果,以便更新我的UI。
我要编辑的书的书名重新命名为“ 1984(signetClassic)”。在我的EditBook
活动中,将其更改为“ 1984”,然后单击“保存浮动操作”按钮。当我逐步通过调试器时,title
确实显示了正确的标题,replyIntent
mMap显示了正确的标题,但是当我检查MainActivity中的数据时,标题已还原为“ 1984(signetClassic )”。有什么想法为什么Intent Extras在发送时会发生变化?
让我知道您是否需要更多信息。