Данные, отправленные через Intent в MainActivity, изменяются - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть активность, которая передает обновленную информацию из моей 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 меняются при отправке?

Дайте мне знать, если вам нужна дополнительная информация.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...