菜单未显示在活动中,还显示一些错误,但我无法识别它们

问题描述 投票:0回答:1

这是我的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 以确保正确包含工具栏。预先感谢您的帮助。

android kotlin mobile drop-down-menu menu
1个回答
0
投票

更改此代码

 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()
}
 }
© www.soinside.com 2019 - 2024. All rights reserved.