Получение значения из EditText
Есть EditText поле. КАК передать то, что в него ввели в string?? Пытался следующим способом, но подсвечивает красным text между EditText и onString как Unresolved reference:
var editText = EditText.text.onString()
вот код кнопки
<EditText
android:id="@+id/edit1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="100dp"
android:layout_marginTop="128dp"
android:ems="10"
android:inputType="textPersonName"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView" />
насколько знаю - не нужно где то доп. объявлять, так что просто (естественно после MainActivity класса):
fun thirdact(view: View){
var editText = EditText.text.onString()
}
Ответы (1 шт):
Автор решения: Andrew
→ Ссылка
Я не очень понял как вы хотели получить доступ к такому полю для ввода. Если использовать Kotlin Android Extensions, то можно обратиться напрямую к полю из класса активности:
edit1.text
либо объявить данное поле и потом присвоить ему значение:
val field = findViewById< EditText>(R.id.edit1)
val string = field.text
либо использовать dataBinding. Подключив при этом его в build.gradle:
android {
...
buildFeatures {
viewBinding = true
}
}
и конвертировав ваш макет в dataBinding layout:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:orientation="vertical">
!!!! вот тут ваше наполнение может находится, родительский контейнер может быть другим
</androidx.appcompat.widget.LinearLayoutCompat>
</layout>
и дальше найти по ID:
val binding = DataBindingUtil.setContentView(this, R.layout.main_activity);
binding.edit1.text