Java Android-操作栏-弹出菜单-错误

Java Android-操作栏-弹出菜单-错误,java,android,android-studio,android-actionbar,android-view,Java,Android,Android Studio,Android Actionbar,Android View,我在ActionBar中创建弹出菜单 MainActivity.java import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.Menu; import android.view.MenuItem; import android.view.MenuInflater; import android.widget.PopupMenu; public c

我在ActionBar中创建弹出菜单

MainActivity.java

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MenuInflater;
import android.widget.PopupMenu;

public class MainActivity extends Activity
        implements PopupMenu.OnMenuItemClickListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu_main, menu);
        return super.onCreateOptionsMenu(menu);
        //return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.action_search:
                //openSearch();
                return true;
            case R.id.action_settings:
                View menuItemView = findViewById(R.id.action_settings);
                PopupMenu popup = new PopupMenu(this, menuItemView);
                popup.inflate(R.menu.menu_popup);
                popup.show();
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }

    @Override
    public boolean onMenuItemClick(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.action_popup_ascending:
                //archive(item);
                return true;
            case R.id.action_popup_descending:
                if (item.isChecked()) item.setChecked(false);
                else item.setChecked(true);
                return true;
            default:
                return false;
        }
    }
}
菜单\u main.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/action_search"
        android:icon="@drawable/ic_search_white_24dp"
        android:title="@string/action_search"
        android:showAsAction="ifRoom" />
    <item
        android:id="@+id/action_settings"
        android:icon="@drawable/ic_more_vert_white_24dp"
        android:title="@string/action_settings"
        android:showAsAction="always" />
</menu>
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group
        android:id="@+id/group_delete"
        android:checkableBehavior="single">
        <item
            android:id="@+id/action_popup_ascending"
            android:title="@string/menu_popup_ascending"
            android:checkable="true"/>
        <item
            android:id="@+id/action_popup_descending"
            android:title="@string/menu_popup_descending"
            android:checkable="true"/>
    </group>
</menu>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:fab="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context=".MainActivity">

    <com.getbase.floatingactionbutton.AddFloatingActionButton
        android:id="@+id/add_floating_action_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        fab:fab_colorNormal="@color/Secondary_Purple_200"
        fab:fab_colorPressed="@color/Secondary_Purple_400"
        fab:fab_plusIconColor="@color/Primary_White"
        android:layout_marginBottom="16dp"
        android:layout_marginRight="16dp"
        android:layout_marginEnd="16dp" />
</RelativeLayout>

菜单\u popup.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/action_search"
        android:icon="@drawable/ic_search_white_24dp"
        android:title="@string/action_search"
        android:showAsAction="ifRoom" />
    <item
        android:id="@+id/action_settings"
        android:icon="@drawable/ic_more_vert_white_24dp"
        android:title="@string/action_settings"
        android:showAsAction="always" />
</menu>
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group
        android:id="@+id/group_delete"
        android:checkableBehavior="single">
        <item
            android:id="@+id/action_popup_ascending"
            android:title="@string/menu_popup_ascending"
            android:checkable="true"/>
        <item
            android:id="@+id/action_popup_descending"
            android:title="@string/menu_popup_descending"
            android:checkable="true"/>
    </group>
</menu>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:fab="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context=".MainActivity">

    <com.getbase.floatingactionbutton.AddFloatingActionButton
        android:id="@+id/add_floating_action_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        fab:fab_colorNormal="@color/Secondary_Purple_200"
        fab:fab_colorPressed="@color/Secondary_Purple_400"
        fab:fab_plusIconColor="@color/Primary_White"
        android:layout_marginBottom="16dp"
        android:layout_marginRight="16dp"
        android:layout_marginEnd="16dp" />
</RelativeLayout>

活动\u main.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/action_search"
        android:icon="@drawable/ic_search_white_24dp"
        android:title="@string/action_search"
        android:showAsAction="ifRoom" />
    <item
        android:id="@+id/action_settings"
        android:icon="@drawable/ic_more_vert_white_24dp"
        android:title="@string/action_settings"
        android:showAsAction="always" />
</menu>
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group
        android:id="@+id/group_delete"
        android:checkableBehavior="single">
        <item
            android:id="@+id/action_popup_ascending"
            android:title="@string/menu_popup_ascending"
            android:checkable="true"/>
        <item
            android:id="@+id/action_popup_descending"
            android:title="@string/menu_popup_descending"
            android:checkable="true"/>
    </group>
</menu>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:fab="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context=".MainActivity">

    <com.getbase.floatingactionbutton.AddFloatingActionButton
        android:id="@+id/add_floating_action_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        fab:fab_colorNormal="@color/Secondary_Purple_200"
        fab:fab_colorPressed="@color/Secondary_Purple_400"
        fab:fab_plusIconColor="@color/Primary_White"
        android:layout_marginBottom="16dp"
        android:layout_marginRight="16dp"
        android:layout_marginEnd="16dp" />
</RelativeLayout>

所有这些都在emulator API 16(min SDK)中工作,但在Android Logcat中我看到了错误,不明白为什么。
在第一条消息中,您可以看到日志。

尝试重新启动emulator

签入真实设备

因为有时候模拟器表现不好,所以需要在真实的环境中进行测试 如果可能的话


对不起的。太大了。请参阅上一条消息中的链接。您使用的手机,我认为您使用的手机具有APINo。API 16请检查我的答案,如果有效,请告诉我