Android Studio - https://developer.android.com/studio/archive


(1) Utwórz projekt Phone and Tablet / Empty Activity


(2) Pozostaw tylko klasę MainActivity i metodę setContent.

W metodzie setContent wstaw kilka elementów interfejsu graficznego.

setContent {
 
    Column{
 
        Text(text = "3")
        Button(onClick = { }) { Text(text = "7") }
 
    }
}


(3) Utwórz odpowiednią funkcję @Composable.

class MainActivity : ComponentActivity() {
 
    override fun onCreate(savedInstanceState: Bundle?) {
 
        super.onCreate(savedInstanceState)
 
        setContent {
            F()
        }
 
    }
 
    @Composable
    fun F()
    {
        Column{
            Text(text = "3")
            Button(onClick = { }) { Text(text = "7") }
        }
    }
}


(4) Wykorzystując poniższy szkielet MainActivity, napisz pełną implementację logiki kalkulatora (pozostałe działania, kropkę dziesiętną, pamięć, funkcje trygonometryczne i logarytmy).

package com.tango.nuevo.app01
 
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.material3.Button
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.MutableIntState
import androidx.compose.runtime.MutableState
import androidx.compose.runtime.mutableIntStateOf
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.sp
 
 
class MainActivity : ComponentActivity() {
 
    override fun onCreate(savedInstanceState: Bundle?) {
 
        super.onCreate(savedInstanceState)
 
        setContent {
            Calc()
        }
 
    }
 
    @Composable
    fun Calc(){
 
        val s: MutableState<String> = remember{mutableStateOf("0")}
        val op: MutableState<Char> = remember{mutableStateOf('+')}
        val buf: MutableIntState = remember{mutableIntStateOf(0)}
 
 
        Column(
            modifier = Modifier.fillMaxSize(),
            horizontalAlignment = Alignment.CenterHorizontally,
            verticalArrangement = Arrangement.Center
        ){
 
            Row{
 
                Text(
                    modifier = Modifier.fillMaxWidth(0.5f),
                    text = s.value,
                    fontSize = 20.sp
                )
 
            }
 
            Row{
 
                Button(onClick = { if (s.value == "0") s.value = "1" else s.value += "1" }) {
 
                    Text(text = "1")
                }
 
                Button(onClick = {if(s.value == "0") s.value="2" else s.value+="2"}) {
 
                    Text( text="2" )
                }
 
                Button(onClick = {if(s.value == "0") s.value="3" else s.value+="3"}) {
 
                    Text( text="3" )
                }
 
                Button(onClick = {op.value='+'; buf.intValue = s.value.toInt(); s.value="0"}) {
 
                    Text( text="+" )
                }
 
            }
 
            Row{
 
                Button(onClick = {if(s.value == "0") s.value="3" else s.value+="4"}) {
 
                    Text( text="4" )
                }
 
                Button(onClick = {}) {
 
                    Text( text="" )
                }
 
 
                Button(onClick = {}) {
 
                    Text( text="" )
                }
 
                Button(onClick = {}) {
 
                    Text( text="" )
                }
 
            }
 
            Row{
 
                Button(onClick = {if(s.value == "0") s.value="7" else s.value+="7"}) {
 
                    Text( text="7" )
                }
 
                Button(onClick = {}) {
 
                    Text( text="" )
                }
 
 
                Button(onClick = {}) {
 
                    Text( text="" )
                }
 
                Button(onClick = {}) {
 
                    Text( text="" )
                }
 
            }
 
            Row{
 
                Button(onClick = {s.value="0" }) {
 
                    Text( text="C" )
                }
 
                Button(
 
                    onClick = {buf.intValue += s.value.toInt(); s.value = buf.intValue.toString()},
                    modifier = Modifier.fillMaxWidth(0.5f)
                ) 
                {
 
                    Text( text="=" )
                }
 
            }
        }
    }
}