Bezdepbonusu7Программирование: статьи и ответы

Вопрос

MyIntent.getStringExtra возвращает ноль?

Автор вопроса: OmarОтветов: 3

У меня странная проблема, когда я пытаюсь отправить строки с намерениями при переключении действий.

Вот что я делаю в 1 классе:

Intent myIntent = new Intent(SearchText.this, Search.class);
myIntent.putExtra("searchx", spinnerselected);
myIntent.putExtra("SearchText", input);
startActivity(myIntent);

Класс 2:

Intent myIntent = getIntent();
searchText=myIntent.getStringExtra("SearchText");
spinnerselectednumber=Integer.parseInt(myIntent.getStringExtra("searchx"));

А используя отладчик во втором классе, становится ясно, что в searchx есть значение.

Хотя строка myIntent.getStringExtra("searchx") возвращает null .

Почему это?

androidandroid-intent

Ответы

Ответ 1 · рейтинг 3 · katsharp

Был ли spinnerSelected строкой?


Из Javadoc для Intent

public String getStringExtra(String name)

С момента: API уровня 1

Описание: получение расширенных данных из намерения.

Параметры:

имя Имя нужного элемента.

Возвращает: значение элемента, которое ранее было добавлено с помощью putExtra() или null, если строковое значение не было найдено.


Кажется, есть много способов получить "дополнительные" - каким бы ни был тип spinnerSelected, попробуйте получить его, используя соответствующий метод. Например, если это было int:

public int getIntExtra(String name, int defaultValue)

Ответ 2 · рейтинг 4 · Aiden Strydom

Попробуйте добавить .ToString() к myIntent.putExtra("searchx", spinnerselected);, чтобы получилось myIntent.putExtra("searchx", spinnerselected.ToString()); У меня всегда работает

Ответ 3 · Waza_Be

Этот код должен работать:

        Bundle extras = getIntent().getExtras();
        return extras != null ? extras.getString("searchx")
                : "nothing passed in";

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы