2013-07-28 3 views
0

Основная деятельность:getStringExtra() всегда бросает NullPointerException

Intent intent = new Intent(Main.this, Secondary.class); 

intent.putExtra("name",value); 

startActivity(intent); 

Secondary активность:

String value = getIntent().getStringExtra("name") 

Что случилось здесь? Я искал много, но безуспешно ...

Благодаря

+0

Вы уверены, что getIntent() не возвращает NULL? – jarmod

+0

Ок, getIntent() возвращает NULL. Как это исправить? – user222

+0

Я предполагаю, что нет действительного намерения в том смысле, что вы вызываете getIntent(). Вы называете это раньше onCreate()? См. Http://stackoverflow.com/questions/13983728/android-using-getintent-only-within-oncreate – jarmod

ответ

0

Я обнаружил, что есть проблема в моем коде, это была моя вина. Это не было проблемой намерения. Спасибо вам всем.

+2

Вы должны были поделиться решением .... –

0

Когда вы звоните putExtra(...), убедитесь, что value объект является String. Если вы передаете какой-либо другой объект, обязательно указывайте value.toString(), особенно при работе с компонентами графического интерфейса.

Смотрите здесь для получения дополнительной информации: Android Intent.getStringExtra() returns null

+0

Не работает, и я на 100% уверен, что это строка – user222

2

Попробуйте это:

В MainActivity:

// Убедитесь, что Secondary это имя деятельности. Secondary.class.

Intent intent = new Intent(this, Secondary.class); 
intent.putExtra("name",value); 
startActivity(intent); 

В средней активности:

String value = getIntent().getExtras.getString("name");

Вы должны получить пакет первой, а затем извлечь строку из него.

Bundle bundle = getIntent().getExtras(); 
if (bundle != null) { 
    bundle.getString("name"); 
} 

Оба должны работать. Второй - проверить, является ли пучок нулевым.

0

Я использовал этот метод раз. Просто убедитесь, что значение имеет значение или инициализировано. Вы можете использовать Журнал или System.out.println (значение); после .putExtra, чтобы увидеть (на вкладке консоли), если значение равно null. и во второй деятельности тоже.

0

Изменение этой линии

String value = getIntent().getStringExtra("name"); 

К этой линии

String value = getIntent().getString("name"); 
Смежные вопросы