Подтвердить что ты не робот

Проверьте, установлены ли дополнительные функции или нет.

Есть ли способ проверить, был ли добавлен дополнительный при запуске Activity?

Я хотел бы сделать что-то вроде (на onCreate() в Activity):

    Bundle extras = getIntent().getExtras();
    String extraStr = extras.getString("extra");

    if (extraStr == null) {
        extraStr = "extra not set";
    }

Но это бросает java.lang.NullPointerException.

Спасибо.

4b9b3361

Ответ 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";
    }