Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.02.2024, 11:28   #1
Сергей_СО
Новичок
Джуниор
 
Регистрация: 18.02.2024
Сообщений: 1
По умолчанию RadioButton.Вычислить формулу соответствующей кнопки, игнорируя диапазон X

Когда вы вводите аргумент x и нажимаете кнопку вычислить, он проверяет, какой из трех диапазонов соответствует x, выполняются вычисления и результат отображается в TextView. В этом случае соответствующий переключатель становится отмеченным. Если нажать другой переключатель, расчеты пересчитываются для формулы, соответствующей этой кнопке, в TextView отображается новый результат, диапазон, в котором находится x, игнорируется. Проблема в том, что что при нажатии на другой переключатель он все равно рассчитывается по формуле, в которую попадает значение X. Я хотел бы попросить о помощи. Я попробовал изменить условия, но это не сработало.

MainActivity.java

Код:
package com.example.test

import android.os.Bundle
import android.widget.Button
import android.widget.CheckBox
import android.widget.EditText
import android.widget.RadioButton
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import kotlin.math.pow
import kotlin.math.sin
import kotlin.math.sqrt

class MainActivity : AppCompatActivity() {
    private lateinit var editTextX: EditText
    private lateinit var buttonCalculate: Button
    private lateinit var textViewResult: TextView
    private lateinit var radioButtonFormula1: RadioButton
    private lateinit var radioButtonFormula2: RadioButton
    private lateinit var radioButtonFormula3: RadioButton
    private lateinit var checkBoxDouble: CheckBox

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        editTextX = findViewById(R.id.editTextX)
        buttonCalculate = findViewById(R.id.buttonCalculate)
        textViewResult = findViewById(R.id.textViewResult)
        radioButtonFormula1 = findViewById(R.id.radioButtonFormula1)
        radioButtonFormula2 = findViewById(R.id.radioButtonFormula2)
        radioButtonFormula3 = findViewById(R.id.radioButtonFormula3)
        checkBoxDouble = findViewById(R.id.checkBoxDouble)

        buttonCalculate.setOnClickListener {
            calculateResult()
        }

        // Initial installation of radio buttons
        radioButtonFormula1.isChecked = true
    }

    private fun calculateResult() {
        val x = editTextX.text.toString().toDoubleOrNull()

        if (x != null) {
            val result = when {
                x <= 2 -> {
                    radioButtonFormula1.isChecked = true
                    sin(x + 1)
                }
                x > 2 && x < 3 -> {
                    radioButtonFormula2.isChecked = true
                    sqrt(x.pow(3) - 1)
                }
                else -> {
                    radioButtonFormula3.isChecked = true
                    x + 1.5
                }
            }

            if (checkBoxDouble.isChecked) {
                textViewResult.text = (result * 2).toString()
            } else {
                textViewResult.text = result.toString()
            }
        } else {
            textViewResult.text = "Please enter a valid value x"
        }

    }
}
activity_main.xml

Код:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="100dp">

    <Button
        android:id="@+id/buttonCalculate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/checkBoxDouble"
        android:layout_marginTop="100dp"
        android:text="Calculate" />


    <CheckBox
        android:id="@+id/checkBoxDouble"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="220dp"
        android:text="Double your result" />

    <EditText
        android:id="@+id/editTextX"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="0dp"
        android:hint="Enter value x"
        android:inputType="numberDecimal" />

    <TextView
        android:id="@+id/textViewResult"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/buttonCalculate"
        android:layout_marginTop="16dp"
        android:text=""
        android:textSize="18sp" />

    <RadioGroup
        android:id="@+id/radiogroup"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="50dp">


        <RadioButton
            android:id="@+id/radioButtonFormula1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="8dp"
            android:text="Formula 1" />

        <RadioButton
            android:id="@+id/radioButtonFormula2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="8dp"
            android:text="Formula 2" />

        <RadioButton
            android:id="@+id/radioButtonFormula3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="8dp"
            android:text="Formula 3" />
    </RadioGroup>

</RelativeLayout>
Сергей_СО вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
две задачи на Паскаль (вычислить значения ряда с заданной точностью и вычислить формулу по элементам массива) METFIss Помощь студентам 7 23.01.2014 15:51
Вычислить сумму элементов каждой строки матрицы A(NxM) , определить наименьшее значение этих сумм и номер соответствующей строки merilyn Помощь студентам 3 14.12.2013 11:39
3 кнопки Radiobutton viteyk Компоненты Delphi 4 19.10.2010 09:30
Бейсик. Как передать в формулу диапазон ячеек? Наталья Ивановна Помощь студентам 2 02.06.2009 23:36