这是我的mainactivity.kt文件
package com.example.everythingcalci
import android.os.Bundle
import android.view.Menu
import android.view.MenuItem
import androidx.appcompat.app.AppCompatActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.*
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.appcompat.widget.Toolbar
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
EverythingCalciApp()
val toolbar = findViewById<Toolbar>(R.id.Calci)
setSupportActionBar(toolbar)
}
}
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
menuInflater.inflate(R.menu.menu_main, menu)
return true
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
return when (item.itemId) {
R.id.simple_interest_calculator -> {
setContent {
SimpleInterestCalculator()
}
true
}
else -> super.onOptionsItemSelected(item)
}
}
}
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun EverythingCalciApp() {
Column {
TopAppBar(
title = { Text(text = "EverythingCalc") }, // Typo: Calci -> Calc
modifier = Modifier.fillMaxWidth()
)
Spacer(modifier = Modifier.height(16.dp))
CalculateContent()
}
}
@Composable
fun CalculateContent() {
var num1 by remember { mutableStateOf("") }
var num2 by remember { mutableStateOf("") }
var operator by remember { mutableStateOf("") }
var result by remember { mutableStateOf("") }
Column(
modifier = Modifier
.fillMaxWidth()
.padding(horizontal = 16.dp),
) {
TextField(
value = num1,
onValueChange = { num1 = it },
label = { Text("Enter the first number") }
)
Spacer(modifier = Modifier.height(16.dp))
TextField(
value = num2,
onValueChange = { num2 = it },
label = { Text("Enter the second number") }
)
Spacer(modifier = Modifier.height(16.dp))
TextField(
value = operator,
onValueChange = { operator = it },
label = { Text("Enter the operator (+, -, *, /)") }
)
Spacer(modifier = Modifier.height(16.dp))
Button(onClick = {
result = when (operator) {
"+" -> (num1.toFloatOrNull() ?: 0f) + (num2.toFloatOrNull() ?: 0f)
"-" -> (num1.toFloatOrNull() ?: 0f) - (num2.toFloatOrNull() ?: 0f)
"*" -> (num1.toFloatOrNull() ?: 0f) * (num2.toFloatOrNull() ?: 0f)
"/" -> {
val n2 = num2.toFloatOrNull()
if (n2 != null && n2 != 0f) {
(num1.toFloatOrNull() ?: 0f) / n2
} else {
0f
}
}
else -> 0f
}.toString()
}) {
Text("Calculate")
}
Spacer(modifier = Modifier.height(16.dp))
Text("Result: $result")
}
}
@Composable
fun SimpleInterestCalculator() {
var amount by remember { mutableStateOf("") }
var interest by remember { mutableStateOf("") }
var time by remember { mutableStateOf("") }
var result by remember { mutableStateOf("") }
Column(
modifier = Modifier
.fillMaxWidth()
.padding(horizontal = 16.dp),
) {
TextField(
value = amount,
onValueChange = { amount = it },
label = { Text("Enter the principal amount") }
)
Spacer(modifier = Modifier.height(16.dp))
TextField(
value = interest,
onValueChange = { interest = it },
label = { Text("Enter the interest rate") }
)
Spacer(modifier = Modifier.height(16.dp))
TextField(
value = time,
onValueChange = { time = it },
label = { Text("Enter the time (in years)") }
)
Spacer(modifier = Modifier.height(16.dp))
Button(onClick = {
val resultValue = (amount.toFloatOrNull() ?: 0f) * (interest.toFloatOrNull() ?: 0f) * (time.toFloatOrNull() ?: 0f) / 100
result = resultValue.toString()
}) {
Text("Calculate")
}
Spacer(modifier = Modifier.height(16.dp))
Text("Simple Interest: $result")
}
}
@Preview(showBackground = true)
@Composable
fun PreviewMainActivity() {
EverythingCalciApp()
}
您能帮我解决菜单和代码中的错误吗?如果您需要更多图像或代码文件,我将在这里发布
我的 Android 应用程序遇到问题,菜单未显示在活动中。我尝试了多种方法但未能解决。以下是相关详细信息: 1. **问题**:当我运行应用程序时,XML 文件中定义的菜单选项不会出现在活动工具栏中。 2. **我尝试过的**:这是我迄今为止尝试过的: - 检查菜单 XML 文件的正确性。 - 在活动的“onCreateOptionsMenu()”方法中扩充菜单。 - 确保工具栏正确设置为支持操作栏。 - 审查了活动布局 XML 以确保正确包含工具栏。预先感谢您的帮助。
更改此代码
Scaffold(topBar = {
CenterAlignedTopAppBar(
title = {
Text(
text = title!!,
textAlign = TextAlign.Center,
fontFamily = FontFamily(Font(R.font.iran_sans_mobile_bold)),
color = Color(0xFF323232),
)
},
navigationIcon = {
IconButton(onClick = { onClick() }) {
Icon(
painter = painterResource(id = R.drawable.arrowdown),
contentDescription = "back",
tint = Color(0xFF323232),
)
}
},
)
},
snackbarHost = {
addToBasket(data, context)
}
) { i -> // orther design }
在这段代码中
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun EverythingCalciApp() {
Column {
TopAppBar(
title = { Text(text = "EverythingCalc") }, // Typo: Calci -> Calc
modifier = Modifier.fillMaxWidth()
)
Spacer(modifier = Modifier.height(16.dp))
CalculateContent()
}
}