//Tip Calculator package com.example.tip import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.material3.Button import androidx.compose.material3.Scaffold import androidx.compose.material3.Text import androidx.compose.material3.TextField import androidx.compose.runtime.Composable import androidx.compose.runtime.mutableStateOf import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview import com.example.tip.ui.theme.TipTheme import androidx.compose.runtime.remember import androidx.compose.runtime.getValue import androidx.compose.runtime.setValue import androidx.compose.ui.unit.dp import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.fillMaxWidth class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() setContent { TipCalculator() } } } @Composable fun TipCalculator(){ var amount by remember { mutableStateOf("") } var tipPercentage by remember { mutableStateOf("") } var tipAmount by remember { mutableStateOf(0) } Column( modifier = Modifier.fillMaxSize() .padding(16.dp), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center ) { TextField(value = amount, onValueChange = {newAmount -> amount = newAmount}, modifier = Modifier.fillMaxWidth(), label = {Text("Enter your total Bill:")}) Spacer(modifier = Modifier.height(16.dp)) TextField(value = tipPercentage, onValueChange = {newTipPercentage -> tipPercentage = newTipPercentage}, modifier = Modifier.fillMaxWidth(), label = {Text("Enter tip percentage:")}) Spacer(modifier = Modifier.height(16.dp)) Button( modifier = Modifier.fillMaxWidth(), onClick ={ val billAmount = amount.toIntOrNull() ?: 0 val tip = tipPercentage.toIntOrNull() ?: 0 tipAmount = (tip * billAmount)/100 }) { Text(text = "Calculate Tip") } Spacer(modifier = Modifier.height(16.dp)) Text(text = "Your tip amount is: $tipAmount") } }
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter