Как вы вводите данные пользователя в текстовое поле и используете его для выполнения математики в Kotlin?

#android #xml #kotlin

#Android #xml #kotlin

Вопрос:

Я создаю приложение для Android, которое рассчитывает комиссию для сотрудников. Я не могу понять, как вызвать пользовательский ввод и использовать его для выполнения математики. Я бы хотел, чтобы они вводили все числа в каждое поле, а затем нажимали на кнопку рассчитать. Это должно вызвать первое поле ввода и умножить его на 5, затем второе поле ввода и умножить на 7,5 и т.д., Пока все шесть полей пользовательского ввода не будут умножены на заданное число, затем он должен сложить их все вместе и сбросить их в поле «Выплата». Кажется, я просто не могу найти, с чего начать. Если кто-нибудь может указать мне правильный путь, я был бы признателен. Фрагменты кода ниже для небольшого дополнительного контекста.

     <Button
    android:id="@ id/button"
    android:layout_width="207dp"
    android:layout_height="0dp"
    android:layout_marginBottom="17dp"
    android:text="@string/calculate"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@ id/editTextNumber7" />

<EditText
    android:id="@ id/editTextNumber7"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="5dp"
    android:ems="10"
    android:hint="@string/payout"
    android:importantForAutofill="no"
    android:inputType="number"
    app:layout_constraintBottom_toTopOf="@ id/button"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@ id/editTextNumber4" />
  

Ответ №1:

В вашем классе kotlin вы должны найти кнопку и каждый редактируемый текст по его идентификатору:

 val button = findViewById<Button>(R.id.button)
//...
val editText7 = findViewById<EditText>(R.id.editTextNumber7)
  

Чтобы определить, что произойдет, если нажать на кнопку, вы должны установить ее OnClickListener:

 button.setOnClickListener {
        //what to do when the button is clikced
}
  

Чтобы получить текст из определенного EditText, вы должны сделать:

 val text7 = editText7.text
  

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

 val number7 = text7.toString().toInt()
  

Комментарии:

1. Эй, спасибо за руководство! Я просмотрел и закончил все вплоть до третьего фрагмента кода, и я работаю над тем, чтобы выяснить, как выполнить преобразование int.

2. Из любопытства, если пользователи могут вводить только целые числа, нужно ли мне еще конвертировать или я могу просто продолжить математику?

3. @BlakeWord Извините, я забыл объяснить это. editText.text возвращается Editable , поэтому для получения текста в виде строки вам нужно выполнить editText.text.toString() , и если вы хотите, чтобы int editText.text.toString().toInt()

4. Большое спасибо за помощь! Вы указали мне правильный путь, и сегодня я закончил полный продукт. Очень признателен!