首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

onOptionsItemsSelected不能被重写并且未使用?

onOptionsItemsSelected是Android开发中的一个方法,用于处理选项菜单的选择事件。它是在Activity或Fragment中重写的方法,用于响应用户在选项菜单中选择某个选项的操作。

如果onOptionsItemsSelected不能被重写并且未使用,可能有以下几种可能的原因:

  1. 错误的方法名:正确的方法名应该是onOptionsItemSelected,而不是onOptionsItemsSelected。请检查代码中是否存在拼写错误或者误用了其他方法名。
  2. 方法签名错误:onOptionsItemSelected方法的正确签名应该是public boolean onOptionsItemSelected(MenuItem item),而不是onOptionsItemsSelected。请确保方法的签名与正确的格式一致。
  3. 未正确绑定选项菜单:在Activity或Fragment中,需要通过调用setHasOptionsMenu(true)来启用选项菜单,并在onCreateOptionsMenu方法中创建菜单项。如果没有正确绑定选项菜单,onOptionsItemSelected方法将不会被调用。
  4. 未正确处理选项菜单选择事件:即使正确重写了onOptionsItemSelected方法,也需要在方法中编写相应的逻辑来处理选项菜单的选择事件。可以通过判断MenuItem的id来执行相应的操作。

综上所述,如果onOptionsItemsSelected不能被重写并且未使用,需要检查方法名、方法签名、选项菜单的绑定和选项菜单选择事件的处理是否正确。如果仍然无法解决问题,可能需要进一步检查代码逻辑和调试。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Java基础-Java中为什么字段不能重写

隐藏字段代替了重写 在java官方提供的tutorial有一段关于隐藏字段的明确定义: Within a class, a field that has the same name as a field...从上面这段解释中,我们可以看出成员变量不能像方法一样重写。当一个子类定义了一个跟父类相同 名字的字段,子类就是定义了一个新的字段。这个字段在父类中被隐藏的,是不可重写的。...如何访问隐藏字段 采用父类的引用类型,这样隐藏的字段就能访问了,像上面所给出的例子一样。 将子类强制类型转化为父类类型,也能访问到隐藏的字段。 ?...在实际的开发中,要尽量避免子类和父类使用相同的字段名,否则很容易引入一些不容易发现的bug。

52620

为什么Java中类的成员变量不能重写?成员变量在Java中能够重写么?不会重写成员变量,而是隐藏成员变量访问隐藏域的方法

这篇文章讨论了Java面向对象概念中一个基本的概念--Field Hiding(成员变量隐藏) 成员变量在Java中能够重写么?...我们看下面这个例子,我们创建了两个子对象,一个使用的是子对象的引用,一个使用的是父对象的引用。...在子类中,父类的成员变量不能简单的用引用来访问。而是,必须从父类的引用获得父类隐藏的成员变量,一般来说,我们不推荐隐藏成员变量,因为这样会使代码变得难以阅读。...其实,简单来说,就是子类不会去重写覆盖父类的成员变量,所以成员变量的访问不能像方法一样使用多态去访问。...访问隐藏域的方法 就是使用父类的引用类型,那么就可以访问到隐藏域,就像我们例子中的代码 就是使用类型转换System.out.println(((Super)c1).s); 翻译自http://www.programcreek.com

3.5K40
  • 引以为戒:避免在Set中使用重写equals和hashCode的引用对象进行去重

    然而,如果使用重写equals()和hashCode()方法的引用对象进行去重,可能会导致意外的行为,最近了在项目中就遇到了这个情况,让我们深入探讨这个问题,并引以为戒,确保正确实现去重操作。...问题所在:重写equals和hashCode方法的引用对象 引用对象在Java中默认是根据内存地址进行比较的。...这样的行为可能导致Set集合无法正确去重,即使两个对象的内容完全相同,也可能当作不同的元素存储在Set中。...总结 使用Set集合进行去重是一个常见的操作,但必须谨慎处理引用对象的去重。 重写equals()和hashCode()方法可能导致意外的去重行为,集合中可能包含相同内容但认为不同的对象。...引以为戒,避免在Set中使用重写equals()和hashCode()方法的引用对象进行去重,以确保代码的正确性和稳定性。

    33640

    django:DateTimeField如何自动设置为当前时间并且修改 ——django日期时间字段的使用

    这三个field有着相同的参数auto_now和auto_now_add,表面上看起来很easy,但实际使用中很容易出错,下面是一些注意点。...DateTimeField.auto_now 这个参数的默认值为false,设置为true时,能够在保存该字段时,将其值设置为当前时间,并且每次修改model,都会自动更新。...需要注意的是,设置该参数为true时,并不简单地意味着字段的默认值为当前时间,而是指字段会被“强制”更新到当前时间,你无法程序中手动为字段赋值;如果使用django再带的admin管理器,那么该字段在admin...与auto_now类似,auto_now_add也具有强制性,一旦设置为True,就无法在程序中手动为字段赋值,在admin中字段也会成为只读的。 ?...readonly_fields = ('save_date', 'mod_date',) admin.site.register(Tag, YourAdmin) 如何将创建时间设置为“默认当前”并且可修改

    7K80

    列入美国“实体名单”的国家、企业、高校、个人不能使用了!以后国内开发者用什么?

    您承认并同意,该服务以及您访问的任何用户内容或第三方内容不得使 用、转移或者以其他方式出口或再出口到美国实施禁运的国家(统称为“被禁运国家”),或者美国财政部的特别指定国民名单或美国商务部的实体名单、...拒绝人士名单或未经验证的最终用户名单或美国财政部的不扩散制裁名单上的公民或居民,或者任何人或实体(统称为“指定公民”)。...如果使用服务,包括但不仅限于通过上传或访问任何用户内容或第三方内容,您表示并保证自己不在被禁运国家,不受被禁运国家的控制,也不是被禁运国家的公民或居民。...您将确保Docker及其供应商和许可方免受您或您的任何代理人、管理人员、董事或雇员违反此类法律或法规所造成的影响 比如 Docker Hub 就受该《服务条款》的限制: 目前中国 IT 公司列入贸易管制

    2.4K20

    Java之重写

    Java 重写(Override) 1.重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!...2.重写的好处在于子类可以根据需要,定义特定于自己的行为。也就是说子类能够根据需要实现父类的方法。 3.重写方法不能抛出新的检查异常或者比重写方法申明更加宽泛的异常。...Object类 Object类是所有Java类的根基类,如果在类的声明中使用extends关键字指明其基类,则默认基类为Object类 ,并且继承了该类的所有方法,以下的方法大家简单记住几个即可。...后续需要使用在讲解。 重写与重载之间的区别 首先看一张图 ?...习题: 动物类:方法(睡,跑) 企鹅类:继承动物类并且重写跑的方法打印“一晃一晃的跑” 老鼠类:继承动物类并且重写睡的方法打印“趴着睡觉” ?

    79611

    知识回顾:抽象类与抽象方法

    要回答这个问题只需记住一点:如果类设计的目点是用来其它类继承,并且它代表的是一系列类对象所具有的公共属性或方法,那么这个类应该设置为抽象类。 下面我们再来看另一个问题:抽象类与普通类有什么区别。...首先抽象类不能实例化。如果类中包含有抽象方法,那么这个类必须要声明为抽象类。同时抽象方法必须在子类中重写。...以下是接口的定义: 接口是为了实现多态; 接口只能包含方法、属性、事件、索引; 接口成员不能有任何实现; 接口不能实例化; 接口成员不能有访问修饰符,默认为public; 实现接口的子类必须实现接口所有成员函数...抽象类和接口异同 同 不能实例化、包含实现的方法声明、派生类必须实现实现的方法,抽象类是抽象方法,接口则是所有成员。...,则使用抽象类、接口对应的是面向对象编程思想的重要原则:面向接口编程。

    31040

    面试官:小伙子来说一说Java中final关键字,以及它和finally、finalize()有什么区别?

    System.out.println("永远18岁"); } } } final修饰方法 当final修饰方法时需要注意: 1、final修饰的方法:只能使用...,不能被子类重写,但能够类内重载; 【代码示例】 public class Test extends Animal{ //方法的重写不被允许 public void run(){...String dog){ System.out.println("我会跑"); } } 在这里插入图片描述 final修饰类 当final修饰方法时需要注意: 1、final修饰的类不能继承...Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要清理工作,在垃圾收集器删除对象之前调用的。 一般情况下,此方法由JVM调用。...特殊情况下,可重写 finalize() 方法,当对象回收的时候释放一些资源,须调用 super.finalize() 。

    9500

    elasticsearch - Lucene分片内部逻辑

    因为文档先缓存在内存中,创建倒排索引和其他索引结构之后才会成为段,才能检索  就像下图中文档先写入内存,为文档构建一系列索引之后成为段,并且写入磁盘,只有段才是 Searchable (可检索的)...:不能修改,或者删除  虽然不能物理上删除或者修改,但是逻辑上行得通,需要使用额外的文件去标记某个段的某条文档是否被删除,更新。  ...因为fsync 耗时长,对于对实时性要求高的 应用来说,是不能容忍的(写入数据后要求立刻检索到,比如订单业务)  那么就不应该调用 fsync 后才使得新段能被打开使用(“打开”意味着能够检索使用)。...,或者在事务完成的时候刷盘,保证落盘,保证数据物理安全,并且使用一个 检查点去做为恢复起点。  ...ES 也是如此,对于删除的段,不会出现在合并之后的段中(证明更新的旧段是否会删除,理论上会)  段这个单位需要耗损一定的物理资源 占用一定的物理时间,将属于多个段的内容合并成一个段可以达到清洁的效果

    83610

    Java入门教程-面向对象

    ,方法重载是针对同一个方法名的不同参数做扩展 注意事项 父类中私有方法不能重写 父类静态方法,子类必须通过静态方法进行重写严格来说,静态方法不能重写!...使用abstract修饰并且没有方法体的方法叫做抽象方法。...通俗来说就是写代码的风格 模板设计模式:把抽象整体就可以看做成一个模板,模板中不能决定的东西定义成抽象方法 让使用模板的类(继承抽象类的类)去重写抽象方法实现需求 优势:模板已经定义了通用结构,使用者只需要关心自己需要实现的功能即可...7.3. final关键字 修饰方法:表明该方法是最终方法,不能重写 修饰变量:表明该变量是常量,不能再次赋值 修饰基本数据类型变量:其值不能更改 修饰引用数据类型变量:地址值不能更改,但是可以修改对象的属性值...,该方法就可以接收这父类的任意子类对象 弊端:不能使用子类的特有功能 如果转的引用类型变量,对应的实际类型和目标类型不是同一种类型,那么在转换的时候就会出现 ClassCastException 异常

    23420

    Java 基础(五) 继承(以实现一个存放 CD 、DVD 的 Database 为例)

    public void print() { System.out.print(title); } } CD 是由 Item 派生的一个类,在 Item 基础上增添了很多属性,并且重写了...父类构造(若子类中给super()参数或者调用super(),则自动调用父类默认构造器;若给了super()参数,调用父类对应的构造器); 2. 定义初始化; 3. 子类构造。...使用super.f()可以调用父类中的f()函数。 重写( Override )不同于重载( Overload ),它是父类中某个方法的重新实现而不是拓展。...子类和子类型 类定义了类型 子类定义了子类型 子类的对象可以当作父类的对象来使用 赋值给父类的变量 传递给需要父类对象的函数 放进存放父类对象的容器里 多态变量 Java 的对象变量是的,它们能保存不止一种类型的对象...若函数需要一个 Animal 类型参数的 ArrayList,那么只能传入 而不能是,否则就只能把函数的声明改为 public void takeThing (ArrayList

    41510

    Java匹马行天下之JavaSE核心技术——面向对象

    才有机会被创建,在方法或代码块执行结束后自动销毁; 局部变量在内存的栈区分配; 局部变量在使用之前必须要先赋值; 静态变量(类的变量) 声明在所有方法体和代码块之外,并且使用static修饰的变量...//实例 public final class Test {    // 类体 } 注意: 当final修饰类时,当前类不能继承; 当final修饰方法时,该方法不能重写; 当final修饰变量时...); 重写方法的访问权限要大于等于父类中方法的访问权限; 子类重写父类方法,子类对象调用的是子类中重写后的方法; 使用static修饰的方法不能重写,但是可以被子类重写声明; 不同包的子类可以重写父类中...interface关键字修饰; 接口是一个完全抽象的抽象类; 接口中没有构造方法; 接口不能实例化对象; 接口中可以声明静态常量、抽象方法、静态方法; 接口中不能声明实例方法,声明抽象方法时,不能使用...,父类引用调用子类重写后的方法,执行的结果是子类重写后的方法         o.print();     } } 运行结果: PPT打印 接口是完全抽象的抽象类,并且可以多实现 接口默认为:

    46530

    Java匹马行天下之JavaSE核心技术——面向对象

    ; 实例变量是在对象创建时创建,对象销毁时销毁; 作用域范围在整个类中; 局部变量 声明在构造方法、静态方法、实例方法、代码块中的变量,都是局部变量; 不能使用...//实例 public final class Test { // 类体 } 注意: 当final修饰类时,当前类不能继承; 当final修饰方法时,该方法不能重写;...(返回值类型,方法名,参数); 重写方法的访问权限要大于等于父类中方法的访问权限; 子类重写父类方法,子类对象调用的是子类中重写后的方法; 使用static修饰的方法不能重写,但是可以被子类重写声明...; 接口可以继承接口,接口与接口间是多继承关系,接口不能继承类; 9.面向对象: 从未封装→封装→继承→多态→抽象类→接口的代码演变: 封装: public class Person {...,父类引用调用子类重写后的方法,执行的结果是子类重写后的方法 o.print(); } } 运行结果: PPT打印 接口是完全抽象的抽象类,并且可以多实现 接口默认为: public

    80130

    JAVA 1-6章测试题

    ,通过super访问父类中被重写的方法;5>super与this语句出现在构造方法中必须放在构造方法的第一行,并且不能同时出现; 6>super与this关键字不能出现在类方法、类代码快中; 25、...答:构造方法不能重写,但可以重载。因为构造方法不能继承,而方法的重写是发生在继承关系下的,所以构造方法不能重写。 26、构造函数的作用是什么?...7>构造方法能重载,但不能重写 31、谈谈final的含义?...42、方法重写的注意事项有哪些? 答:1>方法重写只存在于子类和父类(包括直接父类和间接父类)之间,在同一个类中的方法只能重载,不能重写。...5>父类中的private、final修饰的方法不能重写;子类方法不能缩小父类的访问权限;子类方法不能抛出比父类方法更多的异常。

    84230

    C#中抽象类与抽象方法的作用与实例

    如果一个类设计的目点是用来其它类继承的,它代表一类对象的所具有的公共属性或方法,那个这个类就应该设置为抽象类。 抽象类与其它的类有什么区别呢? 抽象类是不能实例化的。...同时,如果所有动物都必须声明"叫"这样一个方法的话,那么,我们可以在animal类中声明一个抽象方法shout(),因为抽象方法是必须在子类中重写的,所以这就限制了所有继承自animal类都必须重写shout...1、接口存在的意义是为了实现多态; 2、接口中只能包含方法(属性、事件、索引); 3、接口的成员不能有任何实现; 4、接口不能实例化;静态类、抽象类也不可以实例化 5、接口的成员不能有访问修饰符...三、抽象类和接口的区别 相同点   1.不能实例化;   2.包含实现的方法声明   3.派生类必须实现实现的方法,抽象类是抽象方法,接口则是所有成员(不仅是方法包括其他成员) 不同点   1.接口可以多继承...10.如果要设计小而简练的功能块,则使用接口,如果要设计大的功能单元,则使用抽象类   11.接口对应是面向对象编程思想的重要原则:面向接口编程,

    1.7K10

    android开关按钮

    后来,查看开发文档发现,android也有了自己的原生态开关控件,并且在4.0版本中又优化加入了新的类似控件--Switch控件,以及使用起来十分简单的ToggleButton,可是它们只是带有切换效果...                            canvas    在画布上绘制背景 protected boolean verifyDrawable (Drawable who) 如果你的视图子类显示他自己的可视化对象,他将要重写此方法并且为了显示可绘制返回...并且此处不允许使用动画。...,使他看过去是不能点击的。...由于目前对于重写VIEW的onDraw方法的了解不是很深入,所以这里的DEMO中的几个方法都是查看网络之后加上自己的优化和注释演变过来,等这一块深入了后在重写写一篇关于这个的感受和使用说明。

    4K80
    领券