intent.getStringExtra не должен быть нулевым kotlin - PullRequest
0 голосов
/ 20 сентября 2018

Я хочу передать данные с дополнительным намерением из фрагмента в действие. Обычно я использую анко общее намерение из действия в действие

startactivity<secondActivity>("values" to "123")

, но в моем случае я хочу передать данные из фрагмента в действие, какэто

activity?.startactivity<secondActivity>("values" to "123")

когда я хочу получить String Extra в своей деятельности,

val values: String = ""
val intent = intent
values = intent.getStringExtra("values")

Я получаю сообщение об ошибке

intent.getstringextra must not be null

У вас есть решение для моего случая?потому что я делаю это, чтобы получить больше от активности к деятельности, нет проблем

Ответы [ 4 ]

0 голосов
/ 25 июня 2019

Если вы получаете данные из виджета, убедитесь, что вы преобразовали их в строку.

val content: String = YourTextWidget.text. toString ()

0 голосов
/ 20 сентября 2018

Используйте kotlin Null Safety.если его ноль, он не присвоит значение

 var values: String = ""
 val intent = intent
 intent.getStringExtra("values")?.let {
   values=it
 }
0 голосов
/ 30 мая 2019

Поскольку вы объявляете, что значения не могут быть нулевыми, если вы хотите, чтобы значения могли быть нулевыми, вы должны объявить это следующим образом

var values:String? = null

Или если вы хотите получить значение по умолчанию, когда значения равны нулю, вы можете сделать что-то вроде этого

values = if (intent.getStringExtra("values")==null) "" else intent.getStringExtra("values")
0 голосов
/ 20 сентября 2018

Проблема в том, что вы объявили values переменную как не обнуляемую , то есть компилятор:

  • проверит, что вы сами не должны присваивать null или, возможно,null значения
  • вставлять проверки во время выполнения всякий раз, когда это необходимо для обеспечения безопасности

Intent.getStringExtra может возвращать null и, таким образом, компилятор жалуется.

Вы можете объявить переменную values как возможно null и обработать этот случай в коде, например:

val values: String? = intent.getStringExtra("values")
if(values == null){
   finish()
   return;
}

Или назначить значение по умолчанию, если у намерения нет valuesдополнительно:

val values = intent.getStringExtra("values") ?: "Default values if not provided"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...