У меня странная проблема, когда я пытаюсь отправить строки с намерениями при переключении действий.
Вот что я делаю в 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 .
Почему это?
Ответ 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()); У меня всегда работает