gpt4 book ai didi

java - 如何使用 subItem InflateException 修复 OptionsMenu

转载 作者:行者123 更新时间:2023-12-02 09:43:52 27 4
gpt4 key购买 nike

我有一个带有子项目菜单的选项菜单

当我单击选项菜单时,我的应用程序崩溃,但无法解密日志

我想要一个选项按钮来打开 3 个选项菜单子(monad)项

我检查了一些教程,但我看不出我错在哪里

<?xml version="1.0" encoding="utf-8"?>

<item
android:id="@+id/search_button_main_activity"
android:icon="@drawable/search_button"
android:title="@string/search_button"
app:showAsAction="ifRoom"/>
<item
android:id="@+id/notifications_button"
android:title="@string/notifications_button"
app:showAsAction="never" />
<item
android:id="@+id/help_button"
android:orderInCategory="100"
android:title="@string/help_button"
app:showAsAction="never" />
<item
android:id="@+id/about_button"
android:orderInCategory="100"
android:title="@string/about_button"
app:showAsAction="never" />

 @Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_activity_main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.search_button_main_activity:
this.launchSearchActivity();
return true;
case R.id.notifications_button:
Toast.makeText(this, "This will launch notification feature", Toast.LENGTH_SHORT).show();
return true;
case R.id.about_button:
Toast.makeText(this, "This will launch about feature", Toast.LENGTH_SHORT).show();
return true;
case R.id.help_button:
Toast.makeText(this, "This will launch help feature", Toast.LENGTH_SHORT).show();
return true;
default:
return super.onOptionsItemSelected(item);
}
}

这是错误消息:

2019-07-01 16:12:46.581 com.matt.android.mynews E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.matt.android.mynews, PID: 7624
android.view.InflateException: Binary XML file line #51: Binary XML file line #51: Error inflating class TextView
Caused by: android.view.InflateException: Binary XML file line #51: Error inflating class TextView
Caused by: java.lang.UnsupportedOperationException: Failed to resolve attribute at index 4: TypedValue{t=0x2/d=0x1010099 a=1}
at android.content.res.TypedArray.getColor(TypedArray.java:461)
at android.widget.TextView.<init>(TextView.java:771)
at android.widget.TextView.<init>(TextView.java:704)
at android.support.v7.widget.AppCompatTextView.<init>(AppCompatTextView.java:87)
at android.support.v7.widget.AppCompatTextView.<init>(AppCompatTextView.java:83)
at android.support.v7.app.AppCompatViewInflater.createTextView(AppCompatViewInflater.java:177)
at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:102)
at android.support.v7.app.AppCompatDelegateImpl.createView(AppCompatDelegateImpl.java:1266)
at android.support.v7.app.AppCompatDelegateImpl.onCreateView(AppCompatDelegateImpl.java:1316)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:794)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:752)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:883)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:846)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:886)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:846)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:886)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:846)
at android.view.LayoutInflater.inflate(LayoutInflater.java:522)
at android.view.LayoutInflater.inflate(LayoutInflater.java:430)
at android.support.v7.view.menu.MenuAdapter.getView(MenuAdapter.java:94)
at android.support.v7.view.menu.MenuPopup.measureIndividualMenuWidth(MenuPopup.java:161)
at android.support.v7.view.menu.StandardMenuPopup.tryShow(StandardMenuPopup.java:174)
at android.support.v7.view.menu.StandardMenuPopup.show(StandardMenuPopup.java:208)
at android.support.v7.view.menu.MenuPopupHelper.showPopup(MenuPopupHelper.java:290)
at android.support.v7.view.menu.MenuPopupHelper.tryShow(MenuPopupHelper.java:177)
at android.support.v7.widget.ActionMenuPresenter$OpenOverflowRunnable.run(ActionMenuPresenter.java:806)
at android.os.Handler.handleCallback(Handler.java:754)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:163)
at android.app.ActivityThread.main(ActivityThread.java:6228)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)

日志无法告诉我崩溃来自何处

最佳答案

您收到的错误不是来自菜单。它很可能来自您在 launchSearchActivity 中调用的布局。

据我了解,您想要的内容如下

enter image description here

您可以使用下面给出的 xml 来创建一个类似的菜单(请根据需要更改可绘制对象、名称和 id)

<menu 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" tools:context=".MainActivity">
<item
android:id="@+id/action_rate" android:title="@string/action_rate"
android:icon="@drawable/ic_favorite_border_black_24dp" app:showAsAction="always|withText"/>
<item
android:icon="@drawable/ic_more_vert_black_24dp"
android:title="More"
app:showAsAction="always">
<menu>
<item android:id="@+id/action_contact_us" android:icon="@drawable/ic_email_black_24dp"
android:title="@string/action_about"
android:orderInCategory="102" app:showAsAction="never"/>
<item android:id="@+id/action_moreapps" android:icon="@drawable/ic_shop_black_24dp"
android:title="@string/action_more_apps"
android:orderInCategory="103" app:showAsAction="never"/>
<item android:id="@+id/action_exit" android:icon="@drawable/ic_close_black_24dp"
android:title="@string/action_exit"
android:orderInCategory="107" app:showAsAction="never"/>
</menu>
</item>

关于java - 如何使用 subItem InflateException 修复 OptionsMenu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56837422/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com