Как проверить, пуста ли строка - PullRequest
0 голосов
/ 18 октября 2018

У меня есть активность 'B'.У меня есть еще 2 действия A и C. Оба действия ведут к B. Но я передаю разные данные из A и C. Поэтому при получении

String dataFromA = getIntent.getStringExtra("SomethingA");
String dataFromC = getIntent.getStringExtra("SomethingC");

Как не получить ошибку.Я не знаю, откуда пользователь попадает в действие B. Так как мне добавить оператор If или что-то, чтобы не получить ошибку при извлечении, поскольку либо строка A, либо C получит исключение NullPOinterException

Ответы [ 3 ]

0 голосов
/ 18 октября 2018

Вы можете попробовать этот код.

        Bundle arguments = getArguments();
        if (arguments != null){
           if (arguments.containsKey("SomethingA")) {
               String somethingA = arguments.getString("SomethingA");
               if (TextUtils.isEmpty(somethingA)){
                   // Your codes comes here
               }
           }
        }

Пакет (аргументы) может быть нулевым, если не переданы данные.

0 голосов
/ 18 октября 2018

Вы можете использовать метод hasExtra, чтобы проверить, существует ли эта строка.

if (getIntent().hasExtra("SomethingA")) {
    String dataFromA = getIntent.getStringExtra("SomethingA");
} else if (getIntent().hasExtra("SomethingC")) {
    String dataFromC = getIntent.getStringExtra("SomethingC");
}
0 голосов
/ 18 октября 2018

Чтобы проверить, является ли строка пустой или нет, используйте следующий код:

if(TextUtils.isEmpty(yourString))
 {
 // String empty
 }
 else
 {
   // string not empty
  }

В вашем случае вы проверяете это как:

  if (getIntent()!=null && getIntent().getStringExtra!=null )
    {
        if (getIntent().hasExtra("SomethingA") && getIntent().hasExtra("SomethingB"))
        String dataFromA = getIntent.getStringExtra("SomethingA");
        String dataFromB = getIntent.getStringExtra("SomethingB");

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...