第一行代码 按书配置Menu不出来

2024-05-24 17:28

本文主要是介绍第一行代码 按书配置Menu不出来,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题:按照书本配置Menu,就是不出来

页面activity 源码

重写了:onCreateOptionsMenu(), onOptionsItemSelected()

package com.example.lanidemoktimport android.os.Bundle
import android.util.Log
import android.view.Menu
import android.view.MenuItem
import android.view.View
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.databinding.DataBindingUtil
import androidx.lifecycle.viewModelScope
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.catchpig.utils.LogUtils
import com.example.lanidemokt.adapter.OrderListAdapter
import com.example.lanidemokt.databinding.ActivityMenuTextBinding
import com.example.lanidemokt.databinding.ActivityOrderListBinding
import com.example.lanidemokt.viewmodel.ButtonClickListener
import com.example.lanidemokt.viewmodel.MenuTestViewModel
import com.example.lanidemokt.viewmodel.OrderItemViewModel
import com.example.lanidemokt.viewmodel.OrderListViewModel
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import kotlin.math.logclass MenuTestActivity : AppCompatActivity() {var binding: ActivityMenuTextBinding? = null // 操作布局实例var vm = MenuTestViewModel()override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState) //        setContentView(R.layout.activity_main)binding = DataBindingUtil.setContentView(this, R.layout.activity_menu_text)binding?.vm = vminitView()initData()test()}private fun test() { //coroutineScope}private fun initData() {}private fun initView() {}override fun onCreateOptionsMenu(menu: Menu?): Boolean { //        return super.onCreateOptionsMenu(menu)menuInflater.inflate(R.menu.main_menu_item_list, menu)return true}override fun onContextItemSelected(item: MenuItem): Boolean {LogUtils.d("点击了菜单")when (item.itemId) {R.id.more_item -> Toast.makeText(this, "更多", Toast.LENGTH_LONG).show()R.id.more_edit -> Toast.makeText(this, "编辑", Toast.LENGTH_LONG).show()}return true}}

布局activity_menu_text.xml 源码

<?xml version="1.0" encoding="utf-8"?>
<layout 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"><data><import type="android.view.View" /><variablename="order"type="com.example.lanidemokt.viewmodel.OrderItemViewModel" /><variablename="vm"type="com.example.lanidemokt.viewmodel.MenuTestViewModel" /></data><androidx.constraintlayout.widget.ConstraintLayoutandroid:id="@+id/main"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><TextViewandroid:id="@+id/msg2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:text="菜单页面"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"tools:text="消息" /><Buttonandroid:id="@+id/login"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:text="订单列表-点击事件-adapter实现"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/msg2" /><TextViewandroid:id="@+id/msg5"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:text="@{vm.msg}"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/login"tools:text="消息2" /><!--      <androidx.recyclerview.widget.RecyclerViewandroid:layout_width="match_parent"android:layout_height="wrap_content"app:layout_constraintTop_toBottomOf="@id/msg5"MenuTestAdapter_bindList="@{vm.orderList}"tools:listitem="@layout/b_order_item" /> --><androidx.recyclerview.widget.RecyclerViewandroid:layout_width="match_parent"android:layout_height="wrap_content"app:layout_constraintTop_toBottomOf="@id/msg5"tools:listitem="@layout/b_order_item" /></androidx.constraintlayout.widget.ConstraintLayout>
</layout>

菜单项目列表xml 源码

res/menu/main_menu_item_list.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"><item 
android:id="@+id/add_item" 
android:title="Add"/> <item 
android:id="@+id/remove_item" 
android:title="Remove"/> 
</menu>

解决:

看效果图,根本没有菜单栏出来,更不会出现右侧的菜单栏了。

看一下主题配置,原来是之前配置主题颜色时,修改了主题,使用了自己自定义的主题文件:(res/values/themes.xml),

<resources xmlns:tools="http://schemas.android.com/tools"><!-- Base application theme. --><style name="Base.Theme.LaniDemoKt" parent="Theme.Material3.DayNight.NoActionBar"><!-- Customize your light theme here. 自定义主题,颜色等--><!-- <item name="colorPrimary">@color/my_light_primary</item> --></style><style name="Theme.LaniDemoKt" parent="Base.Theme.LaniDemoKt" />
</resources>

主题,需要使用AppCompat的主题,将:android:theme="@style/Theme.LaniDemoKt", 修改为:

android:theme="@style/Theme.AppCompat.DayNight.DarkActionBar
   <applicationandroid:name=".DemoApplication"android:allowBackup="true"android:dataExtractionRules="@xml/data_extraction_rules"android:fullBackupContent="@xml/backup_rules"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:networkSecurityConfig="@xml/network_security_config"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/Theme.LaniDemoKt"tools:targetApi="31"><activityandroid:name=".MainActivity"android:exported="true"android:usesCleartextTraffic="true"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><activity android:name=".OrderListActivity" /><activity android:name=".MenuTestActivity" /></application>

 再次运行。

最终效果

这篇关于第一行代码 按书配置Menu不出来的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/999051

相关文章

Redis Cluster模式配置

《RedisCluster模式配置》:本文主要介绍RedisCluster模式配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录分片 一、分片的本质与核心价值二、分片实现方案对比 ‌三、分片算法详解1. ‌范围分片(顺序分片)‌2. ‌哈希分片3. ‌虚

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

Java中Map.Entry()含义及方法使用代码

《Java中Map.Entry()含义及方法使用代码》:本文主要介绍Java中Map.Entry()含义及方法使用的相关资料,Map.Entry是Java中Map的静态内部接口,用于表示键值对,其... 目录前言 Map.Entry作用核心方法常见使用场景1. 遍历 Map 的所有键值对2. 直接修改 Ma

Springboot3+将ID转为JSON字符串的详细配置方案

《Springboot3+将ID转为JSON字符串的详细配置方案》:本文主要介绍纯后端实现Long/BigIntegerID转为JSON字符串的详细配置方案,s基于SpringBoot3+和Spr... 目录1. 添加依赖2. 全局 Jackson 配置3. 精准控制(可选)4. OpenAPI (Spri

maven私服配置全过程

《maven私服配置全过程》:本文主要介绍maven私服配置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录使用Nexus作为 公司maven私服maven 私服setttings配置maven项目 pom配置测试效果总结使用Nexus作为 公司maven私

springboot加载不到nacos配置中心的配置问题处理

《springboot加载不到nacos配置中心的配置问题处理》:本文主要介绍springboot加载不到nacos配置中心的配置问题处理,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录springboot加载不到nacos配置中心的配置两种可能Spring Boot 版本Nacos

深入解析 Java Future 类及代码示例

《深入解析JavaFuture类及代码示例》JavaFuture是java.util.concurrent包中用于表示异步计算结果的核心接口,下面给大家介绍JavaFuture类及实例代码,感兴... 目录一、Future 类概述二、核心工作机制代码示例执行流程2. 状态机模型3. 核心方法解析行为总结:三

Nacos注册中心和配置中心的底层原理全面解读

《Nacos注册中心和配置中心的底层原理全面解读》:本文主要介绍Nacos注册中心和配置中心的底层原理的全面解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录临时实例和永久实例为什么 Nacos 要将服务实例分为临时实例和永久实例?1.x 版本和2.x版本的区别