#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()
, и если вы хотите, чтобы inteditText.text.toString().toInt()
4. Большое спасибо за помощь! Вы указали мне правильный путь, и сегодня я закончил полный продукт. Очень признателен!