Когда я пытаюсь создать собственный тип навигации и перейти к определенному пункту назначения в моем NavGraph, я получаю сообщение об ошибке, в котором говорится, что это определенный пункт назначения не может быть найден на графике. После проверки некоторые элементы в списке адресов имеют название улицы, например Green Street 1, что не вызывает никаких проблем, но адрес с названием улицы имеет вид Green Street 1/3. > делать. Я предполагаю, что это может быть связано с самой библиотекой androidx.navigation, поскольку навигация в этой библиотеке работает с URL-адресами, которые содержат косую черту между переменными.
Фактический результат:
Приложение аварийно завершает работу после перехода по адресу со знаком косой черты «/».
Ожидаемый результат:
Приложение не аварийно завершает работу после навигации по адресу как со знаком «/», так и без него.
Код:< /p>
Код: Выделить всё
@Serializable
data class Address(
val city: String?,
val companyId: Int,
val country: String?,
val gpsCoordinates: String?,
val id: Int,
val pointName: String? = null,
val pointType: String,
val postalCode: String?,
val street: String?
)
val AddressType = object : NavType(isNullableAllowed = true) {
override fun get(bundle: Bundle, key: String): Address? {
return bundle.getString(key)?.takeIf { it != "null" }
?.let { Json.decodeFromString(it) }
}
override fun parseValue(value: String): Address? {
return if (value == "null") null else Json.decodeFromString(value)
}
override fun serializeAsValue(value: Address?): String {
return Json.encodeToString(value)
}
override fun put(bundle: Bundle, key: String, value: Address?) {
bundle.putString(key, Json.encodeToString(value))
}
}
Подробнее здесь: https://stackoverflow.com/questions/788 ... slash-sign