Android studio: требование типа ключей requestCode и intentExtra - PullRequest
0 голосов
/ 06 января 2020

Я недавно начал следовать некоторым Android учебным пособиям по Studio, и я наткнулся на то, чего я совершенно не понимаю (и не смог найти никакого результата в Google, но, возможно, мой словарь не был на точку).

Вернуться к отслеживанию: Когда вы хотите sh передать строку с намерением начать новую деятельность, вам по необходимости нужно использовать ключ для извлечения данных, ключ типа String. Кроме того, когда вы хотите получить результат от действия, вам понадобится другой ключ, но на этот раз типа int.

Я попытался поменять тип, не будет работать.

Может кто-нибудь объяснить, почему эти ключи имеют разные типы?

Спасибо!

1 Ответ

0 голосов
/ 06 января 2020

С вашего FirstActivity вызовите SecondActivity, используя startActivityForResult() метод

Например:

Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, 1);

В вашем SecondActivity установите данные, которые вы хотите вернуть обратно до FirstActivity. Если вы не хотите возвращаться назад, не устанавливайте ничего.

Например: в SecondActivity, если вы хотите отправить обратно данные:

Intent returnIntent = new Intent();
returnIntent.putExtra("result",result);
setResult(Activity.RESULT_OK,returnIntent);
finish();

Если вы не Я не хочу возвращать данные:

Intent returnIntent = new Intent();
setResult(Activity.RESULT_CANCELED, returnIntent);
finish();

Теперь в вашем классе FirstActivity напишите следующий код для метода onActivityResult().

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (requestCode == 1) {
        if(resultCode == Activity.RESULT_OK){
            String result=data.getStringExtra("result");
        }
        if (resultCode == Activity.RESULT_CANCELED) {
            //Write your code if there's no result
        }
    }
}//onActivityResult

вы в основном передаете request_code 1 в случае этот пример (который является целым числом) по умолчанию Android API.

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