java - 工具栏的问题

标签 java android

我正在尝试使用本指南制作工具栏 https://developer.android.com/training/appbar/actions.html 我的菜单图标没有出现。当我放它时,充气机出现错误。

我的代码main_activity.xml

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.android.grouper4.MainActivity"
    android:orientation="vertical">

    <include layout="@layout/toolbar"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!" />
</LinearLayout>

我的mainactivity.java

toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

工具栏.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/toolbar"
    android:minHeight="?attr/actionBarSize"
    android:background="@color/colorPrimary">

    <item
        android:id="@+id/item1"
        android:showAsAction="always"
        android:title="TEST">
    </item>
    </android.support.v7.widget.Toolbar>

错误

E/AndroidRuntime: FATAL EXCEPTION: main
              Process: com.example.android.grouper4, PID: 19791
              java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.android.grouper4/com.example.android.grouper4.MainActivity}: android.view.InflateException: Binary XML file line #18: Binary XML file line #18: Error inflating class item
                  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2665)
                  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
                  at android.app.ActivityThread.-wrap12(ActivityThread.java)
                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
                  at android.os.Handler.dispatchMessage(Handler.java:102)
                  at android.os.Looper.loop(Looper.java:154)
                  at android.app.ActivityThread.main(ActivityThread.java:6119)
                  at java.lang.reflect.Method.invoke(Native Method)
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
               Caused by: android.view.InflateException: Binary XML file line #18: Binary XML file line #18: Error inflating class item
               Caused by: android.view.InflateException: Binary XML file line #18: Error inflating class item
               Caused by: java.lang.ClassNotFoundException: Didn't find class "android.view.item" on path: DexPathList[[zip file "/data/app/com.example.android.grouper4-2/base.apk"],nativeLibraryDirectories=[/data/app/com.example.android.grouper4-2/lib/x86, /system/lib, /vendor/lib]]
                  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
                  at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
                  at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
                  at android.view.LayoutInflater.createView(LayoutInflater.java:609)
                  at android.view.LayoutInflater.onCreateView(LayoutInflater.java:700)
                  at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:68)
                  at android.view.LayoutInflater.onCreateView(LayoutInflater.java:717)
                  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:785)
                  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
                  at android.view.LayoutInflater.rInflate(LayoutInflater.java:858)
                  at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
                  at android.view.LayoutInflater.rInflate(LayoutInflater.java:861)
                  at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
                  at android.view.LayoutInflater.inflate(LayoutInflater.java:518)
                  at android.view.LayoutInflater.inflate(LayoutInflater.java:426)
                  at android.view.LayoutInflater.inflate(LayoutInflater.java:377)
                  at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:292)
                  at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
                  at com.example.android.grouper4.MainActivity.onCreate(MainActivity.java:33)
                  at android.app.Activity.performCreate(Activity.java:6679)
                  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
                  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618)
                  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
                  at android.app.ActivityThread.-wrap12(ActivityThread.java)
                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
                  at android.os.Handler.dispatchMessage(Handler.java:102)
                  at android.os.Looper.loop(Looper.java:154)
                  at android.app.ActivityThread.main(ActivityThread.java:6119)
                  at java.lang.reflect.Method.invoke(Native Method)
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

最佳答案

试试这个,

1>新建一个菜单资源目录,命名为menu。

make new resource directory

2> 为新菜单创建一个新的布局文件。将其命名为 new_menu.xml

3> 现在为您的菜单添加一些项目...

4> 现在显示新菜单...

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

5> 当任何菜单项被点击时...

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    if (item.getItemId() == R.id.search_menu_item){
        Log.i("Menu_Info", "Search item clicked...");
    }

    return super.onOptionsItemSelected(item);
}

关于java - 工具栏的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44460952/

相关文章:

java - 您可以在 Android Studio 中更改布局资源的背景颜色吗?

java - 当我在 Eclipse 中创建新项目时,为什么 SVN Checkout 不适合我?

android - Android 发送电子邮件时出错

Android服务启动10秒后被杀死

android - 正在运行的Fragment和Activity之间的通信

android - 与cocos2d android中的其他对象发生碰撞时如何删除对象( Sprite )?

java - 如何在android retrofit中上传文件时显示进度条

java - 静态实例与枚举

java - 在没有 Activity 的情况下调用 SharedPreferences、Intent 和 Retrofit

android - 在 Webview 下方添加空间