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

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

Вот что я делаю в 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 .

Почему это?


person Omar    schedule 27.03.2011    source источник


Ответы (3)


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


Из Javadoc для Intent

public String getStringExtra(String name)

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

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

Параметры:

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

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


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

public int getIntExtra(String name, int defaultValue)
person katsharp    schedule 27.03.2011
comment
Спасибо за быстрый ответ, это была проблема. - person Omar; 27.03.2011

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

person Aiden Strydom    schedule 22.04.2013

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

        Bundle extras = getIntent().getExtras();
        return extras != null ? extras.getString("searchx")
                : "nothing passed in";  
person Waza_Be    schedule 27.03.2011
comment
Нет, его проблема в том, что он неправильно вводит значение. Эйден на правильном пути. - person Pacerier; 17.11.2014