标签: android-menu

替换为Android 2.3.3的hasPermanentMenuKey()

我正在使用API​​级别10构建我的应用程序.但它可以在以后的版本中安装和使用.我只有在设备没有菜单按钮时才需要显示操作栏.例如,平板电脑,谷歌Galaxy Nexus手机等.人们建议使用hasPermanentMenuKey()函数.但它只能在API级别14之后才可用.任何人都可以建议我如何解决这个问题?

谢谢,Karthik

android android-menu

1
推荐指数
1
解决办法
2416
查看次数

如何引用menu.xml中定义的MenuItem?

我必须在activity中动态地引用menu.xml中定义的项.

我尝试以下列方式推荐:

MenuItem homeItem = (MenuItem) findViewById(R.id.home);
homeItem.setIcon(R.drawable.home72);
Run Code Online (Sandbox Code Playgroud)

它引发了以下异常:

03-31 10:39:01.703: E/AndroidRuntime(2463): FATAL EXCEPTION: main
03-31 10:39:01.703: E/AndroidRuntime(2463): java.lang.ClassCastException: com.android.internal.view.menu.ActionMenuItemView cannot be cast to android.view.Menu
03-31 10:39:01.703: E/AndroidRuntime(2463):     at com.emg.emgstorelocator.StoreLocatorActivity.onOptionsItemSelected(StoreLocatorActivity.java:133)
03-31 10:39:01.703: E/AndroidRuntime(2463):     at android.app.Activity.onMenuItemSelected(Activity.java:2534)
03-31 10:39:01.703: E/AndroidRuntime(2463):     at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:958)
03-31 10:39:01.703: E/AndroidRuntime(2463):     at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:735)
03-31 10:39:01.703: E/AndroidRuntime(2463):     at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:149)
03-31 10:39:01.703: E/AndroidRuntime(2463):     at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:874)
03-31 10:39:01.703: E/AndroidRuntime(2463):     at com.android.internal.view.menu.ActionMenuView.invokeItem(ActionMenuView.java:514)
03-31 10:39:01.703: E/AndroidRuntime(2463):     at com.android.internal.view.menu.ActionMenuItemView.onClick(ActionMenuItemView.java:99)
03-31 10:39:01.703: E/AndroidRuntime(2463):     at android.view.View.performClick(View.java:4084)
03-31 10:39:01.703: E/AndroidRuntime(2463):     at android.view.View$PerformClick.run(View.java:16966)
03-31 10:39:01.703: E/AndroidRuntime(2463):     at android.os.Handler.handleCallback(Handler.java:615) …
Run Code Online (Sandbox Code Playgroud)

android android-menu android-actionbar

1
推荐指数
1
解决办法
3708
查看次数

检查是否已单击按钮

如何加载菜单取决于按钮被点击?任何想法,解决方案?

@Override
public boolean onCreateOptionsMenu(final Menu menu) {

    menu.clear();
    if(button.**isclicked**) {
        getMenuInflater().inflate(R.menu.menu_main, menu);
    } else {
        getMenuInflater().inflate(R.menu.test, menu);
    }

    return true;
}
Run Code Online (Sandbox Code Playgroud)

android android-menu

1
推荐指数
2
解决办法
2万
查看次数

菜单项未显示在工具栏上

我搜索并发现其他同样的问题,但我仍然无法解决操作栏中未显示的菜单项问题.我将发布我的动作条形码,menu_main.xml和MainActivity.

<?xml version="1.0" encoding="utf-8"?>
    <android.support.v7.widget.Toolbar
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/ColorPrimary"
        android:minHeight="?attr/actionBarSize"
        android:elevation="10dp"
        >


    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="PROJECT TIMELINE"
        android:id="@+id/toolbar_title"
        android:textStyle="bold"
        android:textSize="20sp"
        android:textColor="@color/ColorPrimaryDark" />

</android.support.v7.widget.Toolbar>
Run Code Online (Sandbox Code Playgroud)

这是来自menu_main.xml

<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_settings"
        android:title="@string/action_settings"
        android:orderInCategory="100"
        app:showAsAction="never" />

    <item android:id="@+id/search"
        android:title="@string/Search"
        android:icon="@drawable/ic_action"
        app:showAsAction="ifRoom"
        />

</menu>
Run Code Online (Sandbox Code Playgroud)

我在MainActivity.java中写了这个

public boolean onCreateOptionsMenu(Menu menu){
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu_main, menu);
    return super.onCreateOptionsMenu(menu);
}
Run Code Online (Sandbox Code Playgroud)

android toolbar android-menu android-actionbar

1
推荐指数
1
解决办法
4852
查看次数

如何检查Android中的复选框是否已选中?

我使用下面的代码添加checkboxAndroid Action Bar

 <item
    android:id="@+id/action_checkbox"
    app:actionViewClass="android.widget.CheckBox"
    android:title="@string/action_check"
    app:showAsAction="always"
    />
Run Code Online (Sandbox Code Playgroud)

我如何获得上面的值,checkbox无论是否已Menu item在android中选择它?

java android android-layout android-menu

1
推荐指数
1
解决办法
8076
查看次数

如何在Android操作栏菜单项中显示文本周围的边框?

我打算将类似Chrome的功能添加到我的android应用程序中(请参见下面的屏幕快照中的箭头),在操作栏菜单中会显示一个数字,并带有边框。我怎样才能做到这一点?

在此处输入图片说明

android android-menu android-actionbar android-drawable android-background

1
推荐指数
1
解决办法
2132
查看次数

如何在菜单组之间添加分隔符/分隔符?

我试图在每个菜单组之间显示一个分隔线。我已经尝试给每个组一个唯一的 ID,但这没有用。我找到了一些其他的解决方案,但它们看起来有点奇怪,比如创建一个高度为 1dp 的 LinearLayout。

这是它的显示方式。 没有分组分隔符的菜单

这是 MENU xml 的代码:

<?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"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.example.marcelofb.cratediggersguide.MainActivity">

<item
    android:id="@+id/search"
    android:icon="@android:drawable/ic_menu_search"
    android:title="@string/search_title"
    app:actionViewClass="android.support.v7.widget.SearchView"
    app:showAsAction="collapseActionView|ifRoom"/>

<item
    android:id="@+id/searchOptions"
    android:title="Tools"
    android:icon="@android:drawable/ic_menu_manage"
    app:showAsAction="always">


<group
    android:id="@+id/radioGroupNovoUsado"
    android:checkableBehavior="single">

    <item
        android:id="@+id/novo"
        android:title="NOVO"
        app:showAsAction="never" >
    </item>

    <item
        android:id="@+id/usado"
        android:title="USADO"
        app:showAsAction="never" />
</group>


<group
    android:id="@+id/radioGroupCompactoLP"
    android:checkableBehavior="single">

    <item
        android:id="@+id/compacto"
        android:title="COMPACTO"
        app:showAsAction="never" />

    <item
        android:id="@+id/longplay"
        android:title="LP"
        app:showAsAction="never" />
</group>


<group
    android:id="@+id/radioGroupNacionalImportado"
    android:checkableBehavior="single">

    <item
        android:id="@+id/nacional"
        android:title="NACIONAL"
        app:showAsAction="never" />

    <item
        android:id="@+id/importado"
        android:title="IMPORTADO"
        app:showAsAction="never" />
</group>

</item>
Run Code Online (Sandbox Code Playgroud)

android separator divider android-menu

1
推荐指数
1
解决办法
1517
查看次数

onOptionsItemSelected(MenuItem item)奇怪的行为

我创建了一个菜单,其中包含访问不同活动的意图,但我有一个奇怪的行为,它总是在选择语句后经过switch语句的所有情况,我已经查看了变量项的值并且是正确的,任何想法可能是错的?

表示菜单的代码片段是:

    public static final int wiifidi = 0;
    public static final int cuentaint = 1;
    public static final int cajerosint = 2;
    public static final int indicadoresint = 3;
    public static final int promoint = 5;
    public static final int contactoint = 4;
Run Code Online (Sandbox Code Playgroud)

....

....

....

@Override
    //add the items to the menu on the class
    public boolean onCreateOptionsMenu(Menu menu) {
        boolean result = super.onCreateOptionsMenu(menu);
        menu.add(0,wiifidi, 0, R.string.menu_wifi);
        menu.add(0,cuentaint, 0, R.string.menu_cuenta);
        menu.add(0,cajerosint,0,R.string.menu_cajeros);
        menu.add(0,indicadoresint,0,R.string.menu_indicadores);
        menu.add(0,contactoint,0,R.string.menu_contacto);
        menu.add(0,promoint,0,R.string.menu_promo);


        return result;
    }

    @Override …
Run Code Online (Sandbox Code Playgroud)

java android android-menu

0
推荐指数
1
解决办法
1024
查看次数

在操作栏和菜单键中显示菜单项

我在res/menu/mymenu.xml中有一个菜单项:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/action_settings"
        android:icon="@drawable/ic_action_settings"
        android:title="@string/action_settings"
        android:orderInCategory="100"
        android:showAsAction="ifRoom"  />

</menu>
Run Code Online (Sandbox Code Playgroud)

但是当我按下菜单键时,菜单不会出现.它只显示在动作栏中.我也试过,android:showAsAction="never"但那个时间项目只显示在菜单键屏幕上.我想在操作栏和按菜单键时显示的屏幕中显示项目.提前致谢.

android android-layout android-menu android-actionbar

0
推荐指数
1
解决办法
1770
查看次数

Android ActionBar未在API 8上显示AppCompat v7

我试图ActionBar通过使用v7 AppCompat库来显示我的API 8模拟器,但它没有显示.甚至Split Action Bar也没有显示.用户必须单击菜单按钮才能显示选项.我需要4个选项才能始终在屏幕上显示.

编辑 ::

我有android:uiOptions="splitActionBarWhenNarrow",如果有帮助......

这是我的菜单xml代码:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:symagine="http://schemas.android.com/apk/res-auto" >

<item
    android:id="@+id/action_twitter"
    android:icon="@drawable/ic_action_twitter_icon"
    android:orderInCategory="1"
    android:showAsAction="always"
    symagine:showAsAction="always"
    android:title="@string/twitter_desc"/>
<item
    android:id="@+id/action_share"
    android:icon="@drawable/ic_action_share"
    android:orderInCategory="5"
    android:showAsAction="always"
    symagine:showAsAction="always"
    android:title="@string/share_desc"/>
<item
    android:id="@+id/action_rightDrawer"
    android:icon="@drawable/ic_action_i"
    android:orderInCategory="6"
    android:showAsAction="always"
    symagine:showAsAction="always"
    android:title="@string/action_info"/>
<item
    android:id="@+id/action_facebook"
    android:icon="@drawable/facebook_icon"
    android:orderInCategory="2"
    android:showAsAction="always"
    symagine:showAsAction="always"
    android:title="@string/facebook_desc"/>
<item
    android:id="@+id/action_contact"
    android:orderInCategory="3"
    android:showAsAction="collapseActionView"
    symagine:showAsAction="collapseActionView"
    android:title="@string/action_contact"/>
<item
    android:id="@+id/about_us"
    android:orderInCategory="4"
    android:showAsAction="collapseActionView"
    symagine:showAsAction="collapseActionView"
    android:title="@string/action_about_us"/>

</menu>
Run Code Online (Sandbox Code Playgroud)

这是我的HomeActivity代码:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it …
Run Code Online (Sandbox Code Playgroud)

android android-menu android-support-library android-actionbar-compat

0
推荐指数
1
解决办法
4470
查看次数

Android菜单未出现在Google地图活动中(Api v2)

我在android中有一个活动,应该使用谷歌地图api v2显示谷歌地图,顶部有一个菜单.地图看起来应该是这样,但菜单从来没有出现过某种原因.

我已经调试了应用程序,并且onCreateOptionsMenu(Menu menu)从不调用该方法.为什么是这样?

这是我的活动:

public class MapsActivity extends Activity {

    private GoogleMap mMap; // Might be null if Google Play services APK is not available.

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

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_maps, menu);
        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar …
Run Code Online (Sandbox Code Playgroud)

android google-maps android-menu

0
推荐指数
1
解决办法
4924
查看次数

在工具栏中添加三个点

我用这种方式制作一个导航抽屉并在我的活动中展示它.然后我添加了一个Toolbar到我的基础布局.在这些步骤之后,我尝试这种方式在我的活动上显示三个点.(我在我的基本布局及其类中进行了所有更改).

然后我看到我的活动没有变化.我想我应该用另一种方法在基本活动中添加三个点.我该怎么办?

app_base_layout.xml

    <?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:local="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    android:layoutDirection="rtl"
    tools:openDrawer="right">

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="@color/colorPrimary"
            android:minHeight="?attr/actionBarSize"
            local:popupTheme="@style/ThemeOverlay.AppCompat.Light"
            local:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

            <TextView
                android:id="@+id/toolbar_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:textColor="@android:color/white"
                android:textSize="20sp"/>

        </android.support.v7.widget.Toolbar>

        <FrameLayout
            android:id="@+id/view_stub"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginTop="?attr/actionBarSize"/>

    </FrameLayout>

    <android.support.design.widget.NavigationView
        android:id="@+id/navigation_view"
        android:layout_width="@dimen/nav_header_width"
        android:layout_height="match_parent"
        android:layout_gravity="right"
        app:headerLayout="@layout/drawer_header"
        app:menu="@menu/drawer"/>
</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)

AppBaseActivity.java大多是这样的(只有很小的变化).

android android-menu android-activity navigation-drawer android-toolbar

0
推荐指数
1
解决办法
3919
查看次数

菜单未使用AppCompat库显示在ActionBar中

AppCompat在教会应用程序中使用库,但我的菜单图标没有出现ActionBar.

public class MainActivity extends ActionBarActivity {

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

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

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // toggle nav drawer on selecting action bar app icon/title
        if (mDrawerToggle.onOptionsItemSelected(item)) {
            return true;
        }
        // Handle action bar actions click
        switch (item.getItemId()) {
        case R.id.action_settings:
            return true;

         case R.id.menu_item_share:
            shareApp(); 
            return true;  

        case R.id.menu_item_about:
            Intent intentAbout = new Intent(MainActivity.this, AboutActivity.class);
            startActivity(intentAbout);
            return …
Run Code Online (Sandbox Code Playgroud)

xml android android-appcompat android-menu

-1
推荐指数
1
解决办法
2470
查看次数