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")
}