我花了数周时间为我正在构建的应用设计自定义网页视图。我有一个扩展android WebView的类(让我们称之为myWebView)。我在main.xml中声明了myWebView,就像任何其他UI元素接受我在myWebView上添加包名一样。一切都很好,花花公子。
经过几周的扩展课程的所有功能后,实现选项菜单。与我一直在做的相比,我认为这将是一个相对简单的任务。我覆盖onCreateOptionsMenu(),并尝试从xml文件中扩充我的菜单。当我在模拟器中运行我的应用程序并按下菜单按钮时,没有任何反应。我的onCreateOptionsMenu()代码没有缺陷。我在一个虚拟活动中尝试了它,它有一个只包含常规webview的简单main.xml。菜单在虚拟活动中起作用。然后我尝试了各种其他方法来填充菜单(使用menu.add()的不同实现),它们都是我的虚拟活动,但它们在我的实际应用程序中不起作用。我删除了我的活动中的所有内容,除了onCreate和onCreateOptionsMenu中的内容,以查看我的其他方法中是否有任何内容干扰菜单创建。那也没有成就。我将一个日志语句放入onCreateOptionsMenu()以查看该方法是否被调用。当我按下菜单按钮时,它没有被调用。最后,我进入了我的main.xml,并从布局中删除了myWebView的标签。完成后,应用程序运行,菜单工作。
因此,出于某种原因,使用我的自定义Web视图会阻止菜单运行。还有其他人遇到过这个问题吗?我发现很难相信你不能使用自定义ui元素的选项菜单,所以必须有一些解决方法。相反,有人建立了自定义webview并成功实现了一个选项菜单,这意味着我必须重新检查我的代码。如果有人认为它会有所帮助,我会把我的代码放上去,但我肯定99.99%,所有内容都按照最佳实践进行编码,并且我的扩展类的代码很大,需要进行大量的清理。根据我在这里所说的,有没有人有任何想法?
答案 0 :(得分:0)
奇怪。我使用webview和选项菜单,工作正常。
我不扩展WebView ...我扩展活动,然后在XML中配置webview或将webview添加到“内容视图”。
执行所有网络设置并添加我自己的chromeclient和viewclient以更改webview的功能。
我刚刚从编程方式添加菜单切换到使用XML描述符。所以我知道它仍然有效。
我正在使用SDK 7(2.1.x)
如果您需要扩展webview,请发布您的理由和一些代码,希望我能提供帮助。
答案 1 :(得分:-1)
我实际上已经弄明白了。我重写键盘事件什么都不做,这是阻止它发生的原因。显然这是人们常犯的错误。我必须在谷歌之前没有点击谷歌搜索术语的神奇组合。谢谢你的帮助。我希望我的错误可以帮助你在Android旅程中