作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 View
的子类上有一个 getTag()
方法,它从 .xml 返回 android:tag
属性的值。我希望 MenuItem
也一样...可以将它转换为 View
吗?因为 item 元素还允许 .xml 中的标记属性...
更新:我的目标是在 .xml 中设置一个标记,即 “notranslate”
,并在运行时查询它(我们在运行时手动本地化,不要'问...)
最佳答案
转换总是没问题的,但是转换任何 Interface
都不能在编译时检查,只能在运行时检查。这通常是许多人不建议转换您无法控制的接口(interface)的原因。拥有正确的错误检查代码是确保此类转换不会破坏您的代码的最佳方式。
对于转换,MenuItem
是Interface
还是View
并不重要,但它引用的对象必须是 View
的子类之一,如果不是 View
本身。如果你要转换它,try
转换并catch
ClassCastException
以防万一,因为这是将在运行时抛出的错误.
另一种选择是,由于 MenuItem 只是一个接口(interface),您可以轻松地创建一个 View
子类,它利用 MenuItem
允许您进行转换。如果您像许多启动器一样执行自定义 ContextMenu
,那么您的答案很可能已接近完成。
希望对您有所帮助,模糊逻辑
关于android - 菜单项#getTag(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5967986/
我是一名优秀的程序员,十分优秀!