Проверьте, установлены ли дополнительные функции или нет.
Есть ли способ проверить, был ли добавлен дополнительный при запуске Activity?
Я хотел бы сделать что-то вроде (на onCreate()
в Activity):
Bundle extras = getIntent().getExtras();
String extraStr = extras.getString("extra");
if (extraStr == null) {
extraStr = "extra not set";
}
Но это бросает java.lang.NullPointerException
.
Спасибо.
Ответы
Ответ 1
Используйте Intent.hasExtra(String name)
, чтобы проверить, был ли добавлен дополнительный с name
в намерении.
Кроме того, используйте Intent.getStringExtra(String name)
непосредственно в намерении обрабатывать NullPointerException
, если не было передано никаких дополнительных компонентов.
Ответ 2
Хорошо, у меня была подобная проблема. в моем случае исключение нулевой точки произошло, когда я проверил, был ли мой bundle.getString() равным null.
вот как В МОЕМ СЛУЧАЕ я решил это:
Intent intent = getIntent();
if(intent.hasExtra("nomeUsuario")){
bd = getIntent().getExtras();
if(!bd.getString("nomeUsuario").equals(null)){
nomeUsuario = bd.getString("nomeUsuario");
}
}
Ответ 3
Я бы использовал это решение в вашем случае.
String extraStr;
try {
extraStr = getIntent().getExtras().getString("extra");
} catch (NullPointerException e ) {
extraStr = "something_else";
}
Ответ 4
if (this.getIntent().getExtras() != null && this.getIntent().getExtras().containsKey("yourKey")) {
// intent is not null and your key is not null
}
Ответ 5
Я думаю, вам нужно проверить, когда дополнительные функции: = null
Bundle extras = getIntent().getExtras();
if (extras != null) {
String extraStr = extras.getString("extra");
}else {
extraStr = "extra not set";
}