MainActivity.kt package com.cscorner.myapplication4 import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import com.cscorner.myapplication4.databinding.ActivityMainBinding import kotlin.math.ceil class MainActivity : AppCompatActivity() { lateinit var binding: ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) binding.button.setOnClickListener() { calculateTip() } } fun calculateTip() { val cost =(binding.cost.text.toString()).toDouble() val selected =binding.RG.checkedRadioButtonId val tipPercent=when(selected) { R.id.radioButton ->15 R.id.radioButton2 ->18 else -> 20 } var tip=tipPercent*cost if(binding.switch2.isChecked) { tip= ceil(tip) } binding.textView7.text=tip.toString() } } activity_main.xml <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <EditText android:id="@+id/cost" android:layout_width="241dp" android:layout_height="55dp" android:ems="10" android:inputType="text" android:text="Cost" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.119" /> <RadioGroup android:id="@+id/RG" android:layout_width="253dp" android:layout_height="154dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.5" tools:ignore="UnknownId"> <RadioButton android:id="@+id/radioButton" android:layout_width="match_parent" android:layout_height="48dp" android:text="Excelent" /> <RadioButton android:id="@+id/radioButton2" android:layout_width="match_parent" android:layout_height="48dp" android:text="Very Good" /> <RadioButton android:id="@+id/radioButton3" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="48dp" android:text="Bad" /> </RadioGroup> <Switch android:id="@+id/switch2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:minHeight="48dp" android:text="Switch" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.498" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.672" tools:ignore="UnknownId,UseSwitchCompatOrMaterialXml" /> <Button android:id="@+id/button" android:layout_width="166dp" android:layout_height="48dp" android:text="Button" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.497" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.79" tools:ignore="UnknownId" /> <TextView android:id="@+id/textView7" android:layout_width="182dp" android:layout_height="30dp" android:text="TextView" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.497" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.91" tools:ignore="UnknownId" /> </androidx.constraintlayout.widget.ConstraintLayout> Build katle plugins { alias(libs.plugins.android.application) alias(libs.plugins.jetbrains.kotlin.android) } android { namespace = "com.cscorner.myapplication4" compileSdk = 35 defaultConfig { applicationId = "com.cscorner.myapplication4" minSdk = 24 targetSdk = 34 versionCode = 1 versionName = "1.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { isMinifyEnabled = false proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) } } compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = "1.8" } buildFeatures{ viewBinding= true } } dependencies { implementation(libs.material) implementation(libs.androidx.activity) androidTestImplementation(libs.androidx.junit) implementation ("androidx.core:core-ktx:1.7.0") implementation ("androidx.appcompat:appcompat:1.6.1") implementation ("com.google.android.material:material:1.9.0") implementation ("androidx.constraintlayout:constraintlayout:2.1.4") testImplementation ("junit:junit:4.13.2") androidTestImplementation ("androidx.test.ext:junit:1.1.5") androidTestImplementation ("androidx.test.espresso:espresso-core:3.5.1") }