【发布时间】:2017-09-08 22:02:02
【问题描述】:
我的头发因此变白了,所以我希望你们能有所启发。
因此,问题在于 EditText 没有膨胀到菜单中,尽管之前和之后的其他项目都正确膨胀了。
java代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main_notes_optionsmenu, menu);
title_textbox = (EditText)menu.findItem(R.id.title_textbox);
return true;
}
title_textbox 保持为空。使用逐步调试器,我看到充气后,菜单有以下几项:
https://gyazo.com/8a76c0bd702568f4c46a8ef2af1a03c5(图片链接,因为我没有 10 个代表来嵌入它。)
在返回和接受之间,应该有activity_main_notes_optionsmenu.xml中定义的edittext:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/menubar">
<item
android:id="@+id/back_button"
android:icon="@drawable/ic_back_button"
android:orderInCategory="1"
android:title="Back"
app:showAsAction="always"/>
<EditText
android:id="@+id/title_textbox"
android:inputType="text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orderInCategory="2"
app:showAsAction="always"/>
<item
android:id="@+id/accept"
android:icon="@drawable/ic_accept"
android:orderInCategory="3"
android:title="Accept"
app:showAsAction="always"/>
<group android:id="@+id/group1" android:checkableBehavior="none" android:orderInCategory="4">
<item
android:id="@+id/renamenote"
android:icon="@drawable/ic_menu_slideshow"
android:title="Rename Note" />
<item
android:id="@+id/deletenote"
android:icon="@drawable/ic_menu_manage"
android:title="Delete Note" />
</group>
</menu>
我能找到的唯一功能性解决方法是将 EditText 添加到 android.support.v7.widget.Toolbar 中,但是在这种情况下 orderInCategory 将被忽略,并且 Edittext 将始终是最左边的项目,紧随其后通过菜单中的项目。期望的行为是,从左到右,我们有返回按钮、EditText、Accept 按钮,然后是溢出窗口中的最后 2 个。
涉及此主题的其他问题是:
Add EditText to Toolbar - 如上所述的可用解决方法,但由于定位限制,它不是一个合适的解决方案。
menu.findItem(R.id.*) is null- Android - 是在充气之前尝试使用对象的简单案例,而不是我的案例。
Android : Display an EditText in a menu - 好像说不可能?尽管根据许多其他来源,这是可能的。
Edit Text won't inflate in the action bar - 看起来和我的问题一样,但是在接受的答案中,第一部分是关于强制转换的,但我的问题是它一开始就不存在,关于自定义前缀的部分我试过了,但是没用。
【问题讨论】:
标签: java android android-menu