Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 菜单活动没有';行不通_Android_Listview_Button_Menuitem - Fatal编程技术网

Android 菜单活动没有';行不通

Android 菜单活动没有';行不通,android,listview,button,menuitem,Android,Listview,Button,Menuitem,我的应用程序主屏幕上有几个按钮和列表视图。我想把菜单活动放在这里。因此,我只编写了自定义菜单活动,并从主屏幕扩展。但不幸的是,当我点击手机上的菜单按钮时,我的自定义菜单不起作用。有什么想法吗 package com.gokiri.gl.activity; import android.app.Activity; import android.app.ListActivity; import android.content.Context; import android.content.Inte

我的应用程序主屏幕上有几个按钮和列表视图。我想把菜单活动放在这里。因此,我只编写了自定义菜单活动,并从主屏幕扩展。但不幸的是,当我点击手机上的菜单按钮时,我的自定义菜单不起作用。有什么想法吗

package com.gokiri.gl.activity;

import android.app.Activity;
import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.util.DisplayMetrics;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;

import com.gokiri.gl.R;
import com.gokiri.gl.screen.GLandMainMenu;
import com.gokiri.gl.screen.SearchScreen;
import com.gokiri.gl.util.Shared;

public class GLandMainActivity extends ListActivity {
    protected Activity act;
    protected int screenWidth, screenHeight;
    protected Bitmap bannerBitmap;

    protected void initActivity(Activity act) {
        this.act = act;

        DisplayMetrics dm = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(dm);
        screenWidth = dm.widthPixels;
        screenHeight = dm.heightPixels;
        dm = null;

        Shared.addAcitivity(act);
        setDefaultButton();
    }

    public void setDefaultButton() {

    }

    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_MENU) {
            Shared.removeAcitivity();
            startActivity(new Intent(this, GLandMainMenu.class));
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

    private Menu mMenu;

    public boolean onCreateOptionsMenu(Menu menu) {
        this.mMenu = menu;
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.main, menu);
        return true;
    }

    public boolean onPrepareOptionsMenu(Menu menu) {

        return super.onPrepareOptionsMenu(menu);
    }

    public boolean onMenuItemSelected(int featureId, MenuItem item) {
        switch (item.getItemId()) {
        case R.id.menu_home:
            // act.finish();
            Intent main = new Intent(act, GLandMainMenu.class);
            startActivity(main);
            return true;
        case R.id.menu_search:
            act.finish();
            Intent search = new Intent(act, SearchScreen.class);
            startActivity(search);
            return true;
        case R.id.menu_bookmarks:
            return true;
        case R.id.menu_about:
            return true;
        }
        return super.onMenuItemSelected(featureId, item);
    }
}
根据评论编辑:

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:id="@+id/menu_home" 
    android:title="@string/home" 
    android:icon="@drawable/tab_home" />
  <item android:id="@+id/menu_search"
    android:title="@string/search" 
    android:icon="@drawable/tab_search" />
  <item android:id="@+id/menu_bookmarks"
    android:title="@string/bookmark"
    android:icon="@drawable/tab_about" />
  <item android:id="@+id/menu_about"
    android:title="@string/about"
    android:icon="@drawable/tab_about" />
</menu>


据我所见,您使用onKeyDown阻止onCreateOptionMenu(),onKeyDown拦截KeyEvent.KEYCODE\u菜单。您不能将菜单按钮用于启动活动和显示菜单(显然)。如果不是这样,请解释一下GLandMainMenu类是什么

Hi geekmyo可能是你没有在Android Manifies中添加活动第三段,我有其他屏幕使用的其他菜单活动,从未在mainfiest文件中添加。在mainfiest没有声明的情况下,它也能正常工作。有什么想法吗?是不是当你按下手机上的“功能表”按钮时,功能表没有显示?或者是菜单显示了,但当你按下菜单项时它没有反应?嗨,Emil H,我的问题是当我按下emulator和phone上的菜单按钮时,菜单没有显示。谢谢,菜单xml资源是什么样子的?也许你用错身份证了?嗨,伊皮恩,你的答案很难回答。问题解决了,我要做的就是从代码中删除onKeyDown函数。谢谢