Типы данных в Kotlin для Android-разработки
Типы данных определяют, каким образом хранятся и обрабатываются данные в программе. В Kotlin, как и в большинстве статически типизированных языков, тип переменной определяется при её объявлении и влияет на операции, которые можно с ней производить.
Числовые типы
Строковый тип
Булевый тип
Специальные типы для Android
В Android-разработке часто приходится работать с текстом, который нуждается в дополнительном форматировании. Для...
Основные типы данных в Kotlin
Числовые типы
Int: целое число (32-bit).Long: длинное целое число (64-bit).Float: вещественное число одинарной точности (32-bit).Double: вещественное число двойной точности (64-bit).
Строковый тип
String: обычная строка текста.
Булевый тип
Boolean: логическое значение (trueилиfalse).
Специальные типы для Android
CharSequence: интерфейс, представляющий последовательность символов (часто используется в Android для работы с текстом).SpannableString: класс, который позволяет добавлять стили и разметку к текстовым данным (используется для форматирования текста в Android).
SpannableString и CharSequence
В Android-разработке часто приходится работать с текстом, который нуждается в дополнительном форматировании. Для...
- Жалоба
Kotlin: Хранилище конфигурационных переменных
В Kotlin/Android есть несколько способов организовать централизованное хранение конфигурационных переменных.
Создайте файл в "res/values/strings.xml":
Доступ через:
Создайте файл "Config.kt":
Доступ:
Настройте в "build.Gradle":
Доступ:
Создайте в "Application":
...
Ресурсные файлы (values)
Создайте файл в "res/values/strings.xml":
ВыделитьKotlin
<resources>
<string name="api_url">https://api.example.com</string>
<integer name="timeout">30000</integer>
<bool name="debug_mode">true</bool>
</resources>Доступ через:
R.string.api_url.Константы в отдельном файле
Создайте файл "Config.kt":
ВыделитьKotlin
object Config {
const val API_URL = "https://api.example.com"
const val TIMEOUT = 30000
const val DEBUG_MODE = true
}Доступ:
Config.API_URL.BuildConfig
Настройте в "build.Gradle":
ВыделитьGradle
buildTypes {
debug {
buildConfigField "String", "API_URL", "\"https://api.example.com\""
}
release {
buildConfigField "String", "API_URL", "\"https://api.prod.com\""
}
}Доступ:
BuildConfig.API_URL.Application-класс
Создайте в "Application":
ВыделитьKotlin
class MyApp: Application() {
Kotlin: Функции, лямбды и обработка нажатий
Функции: Основы
Функция — это блок кода, который выполняет определённое действие и может быть вызван многократно.
Синтаксис:
ВыделитьKotlin
fun имяФункции(параметры): ТипВозврата {
// тело функции
return результат
}Пример простой функции:
ВыделитьKotlin
fun addNumbers(a: Int, b: Int): Int {
return a + b
}
// Вызов
val sum = addNumbers(5, 3) // sum = 8Важные моменты:
fun— ключевое слово для объявления функции.- Типы параметров и возвращаемого значения указываются явно.
- Если функция не возвращает значение, тип возврата —
Unit(можно не указывать).
Функции без возвращаемого значения
Когда функция выполняет действие, но не возвращает результат:
ВыделитьKotlin
fun showMessage(message: String) {
println(message)
}
// Вызов
showMessage("Привет из функции!")Значения параметров по умолчанию
Можно задать значения по умолчанию, чтобы не указывать их при вызове:
Выделитьkotlin
fun greet(name: String = "Гость") {
println("Привет, $name!")
}
// ВариантыKotlin: Как получать данные с JSON
Давайте разберем, как получить конкретное значение из JSON файла, хранящегося в "assets".
Пример структуры JSON (user.json)
Чтение файла из assets
Создание модели данных
Парсинг JSON и поиск по ID
...
Пример структуры JSON (user.json)
ВыделитьJSON
[
{
"id": 1,
"name": "Иван",
"email": "iv@mail.com",
"age": 25
},
{
"id": 2,
"name": "Анна",
"email": "an@mail.com",
"age": 30
}
]Шаги для получения данных
Чтение файла из assets
val jsonString = context.assets.open("user.json").bufferedReader().use { it.readText() }Создание модели данных
ВыделитьKotlin
data class User(
val id: Int,
val name: String,
val email: String,
val age: Int
)Парсинг JSON и поиск по ID
ВыделитьKotlin
// Парсим весь JSON в список
val gson = Gson()
val users = gson.fromJson(jsonString, Array<User>::class.java).toList()
// Ищем пользователя по ID
fun getUserById(id: Int): User? {
return users.find { it.id == id }
}
// Пример использования
val user = getUserById(1)
user?.let {
println("Имя:Kotlin: Формы ввода текста
Для создания формы ввода текста в Jetpack Compose можно использовать TextField. Вот пример реализации:
...
ВыделитьKotlin
@Composable
fun TextInputForm() {
Column(
modifier = Modifier
.fillMaxSize()
.padding(16.dp),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
// Поле для ввода текста
var text by remember { mutableStateOf("") }
TextField(
value = text,
onValueChange = { newText ->
text = newText
},
label = { Text("Введите текст") },
modifier = Modifier
.fillMaxWidth()
.padding(bottom = 16.dp)
)
// Кнопка отправки
Button(
onClick = {
// Здесь обработка введенного текста
println("Введенный текст: $text")
},
Реклама




