标签: android-menu

menuitem上的actionlayout什么都不做

我正在菜单项上设置actionLayout并设置背景颜色和图像,但它不受尊重.在我的活动中,我有:

getMenuInflater().inflate(R.menu.submit_action, menu);
Run Code Online (Sandbox Code Playgroud)

我的submit_action是:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item android:id="@+id/action_submit"
        android:actionLayout="@layout/check"
        app:showAsAction="always"  />
</menu>
Run Code Online (Sandbox Code Playgroud)

我的支票布局是

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    style="?android:attr/actionButtonStyle"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#e8e8e8"
    android:clickable="true"
    android:contentDescription="lol" >

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:contentDescription="@null"
        android:scaleType="centerInside"
        android:src="@drawable/ic_action_tick" />

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

但即使使用了所有这些设置,这就是操作栏的显示方式,根本不显示我的menuitem(但它在那里,因为它响应了点击,但没有出现):

在此输入图像描述

android android-menu android-actionbar

55
推荐指数
3
解决办法
3万
查看次数

如何动态创建菜单项?

我正在构建一个Android应用程序,我正在尝试构建一个用户可以登录,注销等用户管理系统.我想在用户注销时显示登录菜单项,如果用户已登录则显示注销按钮in.我怎么能动态地这样做?

这是现在的布局文件:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:id="@+id/add" android:title="Add" android:icon="@drawable/ic_menu_add"/>
  <item android:id="@+id/list" android:title="List" android:icon="@drawable/ic_menu_list"/>
  <item android:id="@+id/refresh" android:title="Refresh" android:icon="@drawable/ic_menu_refresh"/>
  <item android:id="@+id/login" android:title="Login" android:icon="@drawable/ic_menu_login"/>
</menu>
Run Code Online (Sandbox Code Playgroud)

这是我现在的Java:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    new MenuInflater(this).inflate(R.menu.activity_main, menu);
    return(super.onCreateOptionsMenu(menu));
}

@Override
public boolean onOptionsItemSelected(MenuItem item) 
{
    System.out.println(item.getItemId()==R.id.add);
    if (item.getItemId()==R.id.add)
    {
        //Cannot add spot unless we have obtained the users current location. 
        if((currentLat != 0) && (currentLng != 0))
        {

            System.out.println("loggedin? : "  + auth.isLoggedIn());
            if(!auth.isLoggedIn())
            {
                Toast.makeText(MainActivity.this, "You must be logged in to add …
Run Code Online (Sandbox Code Playgroud)

android dynamic menuitem android-layout android-menu

54
推荐指数
3
解决办法
6万
查看次数

操作栏菜单项文本颜色

如何更改菜单项标题的文本颜色.我试着改变它如下

<style name="Theme.Kanku.ActionBar.TitleTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
    <item name="android:textColor">@color/white</item>
</style>
Run Code Online (Sandbox Code Playgroud)

但它仅更改操作栏标题文本的颜色,而不更改菜单项文本.

android android-menu android-actionbar android-styles

51
推荐指数
5
解决办法
7万
查看次数

如何更改操作栏中的选项菜单图标?

如何更改选项菜单的索引图标?

在此输入图像描述

我的意思是图标(3).

这是我的代码:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.options, menu);

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

这是XML文件:

<item android:id="@+id/Bugreport"
    android:title="@string/option_bugreport" />

<item android:id="@+id/Info"
    android:title="@string/option_info" />

<item android:id="@+id/About"
    android:title="@string/option_about" />
Run Code Online (Sandbox Code Playgroud)

android android-menu android-icons android-optionsmenu android-actionbar

49
推荐指数
5
解决办法
9万
查看次数

什么是ActionBar菜单项中的orderInCategory以及它为什么用于..?

我正在处理动作菜单项及其溢流项目这是我的 main_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">

<item
    android:id="@+id/menu_search"
    android:icon="@drawable/search"
    android:title="@string/start_new_project"
    app:showAsAction="always" />
<item
    android:id="@+id/menu_dts_overflow"
    android:icon="@drawable/ic_action_overflow_round"
    android:orderInCategory="11111" 
    android:title="Service"
    app:showAsAction="always">
    <menu>
        <item
            android:id="@+id/menu_newProject"
            android:icon="@drawable/newproject"
            android:title="@string/start_new_project"
            app:showAsAction="never" />


        <item
            android:id="@+id/menu_help"
            android:icon="@drawable/help"
            android:title="Service Tasks"
            app:showAsAction="never" />


        <item
            android:id="@+id/menu_signOut"
            android:icon="@drawable/signout"
            android:title="@string/menusignout"
            app:showAsAction="never" />

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

我试图构建一个搜索项和溢出项,您可以在上面的代码中看到.我是Action栏目菜单项目的新手,所以我尝试了Google,并且能够让它按照我的需要运行.

在这里我还要知道一件事.

1.什么是orderInCategory一些数字,使用了什么..?

android android-menu android-actionbar

49
推荐指数
3
解决办法
4万
查看次数

showAsAction ="ifRoom"即使有足够的空间也不显示该项目

我试图让ActionBar在我的应用程序上正常工作(我正在使用ActionBarSherlock在Android 2.x和4.x之间获得统一的UI).

我觉得android:showAsAction="ifRoom"这只是一个大而肥胖的谎言.每当我设置动作时,ifRoom即使有足够的空间,也会在溢出菜单中显示.以下是来自同一模拟器的两个屏幕截图.第一个显示ActionBar,其中所有选项都设置为always,第二个显示ActionBar,后两个选项设置为ifRoom.正如你所看到的那样,当always屏幕截图中显示所有房间时,还有很多空间,所以为什么它们都没有在第二个显示,因为它们有空间?

在此输入图像描述

在此输入图像描述

这是我的menu.xml:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/add"
        android:icon="@drawable/ic_menu_btn_add"
        android:showAsAction="always"
        android:title="Add"/>
    <item
        android:id="@+id/calculateNPV"
        android:icon="@drawable/menu_icon_npv"
        android:showAsAction="always"
        android:title="NPV"/>
    <item
        android:id="@+id/calculateIRR"
        android:icon="@drawable/menu_icon_irr"
        android:showAsAction="always"
        android:title="IRR/YR"/>
    <item
        android:id="@+id/send"
        android:icon="@android:drawable/ic_menu_share"
        android:showAsAction="always"
        android:title="@string/share_pdf"/>
    <item
        android:id="@+id/graph"
        android:icon="@drawable/ic_menu_gallery"
        android:showAsAction="ifRoom"
        android:title="@string/view_cashflow_diagram"/>
    <item
        android:id="@+id/deleteReorder"
        android:icon="@drawable/ic_menu_clear_playlist"
        android:showAsAction="ifRoom"
        android:title="@string/delete_reorder_cashflows"/>

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

android android-layout android-menu actionbarsherlock android-actionbar

47
推荐指数
4
解决办法
5万
查看次数

片段中的菜单未显示

我对上一期的问题提供了非常有用的提示,我希望这次不会有所不同:)首先,让我解释一下情况.我有一个有2个片段的活动.对于每个片段,我有一个xml菜单布局,第一个有四个菜单项,第二个只有一个.现在首先加载具有四个菜单条目的片段.在我设置的onCreate方法中

this.setHasOptionsMenu(true);
Run Code Online (Sandbox Code Playgroud)

onCreateOptionsMenu方法

@Override 
public void onCreateOptionsMenu (Menu menu, MenuInflater inflater) {
    super.onCreateOptionsMenu(menu, inflater);
    inflater.inflate(R.menu.menu_fragshow, menu);
}
Run Code Online (Sandbox Code Playgroud)

xml文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_refresh"
      android:icon="@drawable/ic_action_search"
      android:title="Refresh"
      android:visible="true"
      android:showAsAction="ifRoom|withText" />
<item android:id="@+id/menu_clearall"
      android:icon="@drawable/ic_action_search"
      android:title="Clear"
      android:visible="true"
      android:showAsAction="ifRoom|withText" />
<item android:id="@+id/menu_addcontent"
      android:icon="@drawable/ic_action_search"
      android:title="Add Content"
      android:visible="true"
      android:showAsAction="ifRoom|withText" />
<item android:id="@+id/menu_newlist"
      android:icon="@drawable/ic_action_search"
      android:title="New List"
      android:visible="true"
      android:showAsAction="ifRoom|withText" />    
</menu>
Run Code Online (Sandbox Code Playgroud)

这很好用.所有菜单项都在那里,我可以点击它们并回复.现在,当我单击"添加内容"菜单时,将加载另一个片段.我也在那里设定

this.setHasOptionsMenu(true);
Run Code Online (Sandbox Code Playgroud)

onCreateOptionsMenu方法

@Override 
public void onCreateOptionsMenu (Menu menu, MenuInflater inflater) {
    Log.i("FragCreateList","onCreateOptionsMenu called");
    super.onCreateOptionsMenu(menu, inflater);
    inflater.inflate(R.menu.menu_fragcreatelist, menu);
}
Run Code Online (Sandbox Code Playgroud)

xml文件

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item …
Run Code Online (Sandbox Code Playgroud)

android android-menu android-fragments

46
推荐指数
7
解决办法
5万
查看次数

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

Android Studio等待构建完成

我有个问题.当我在Android Studio中启动一个新项目并选择导航抽屉活动时,它就会发生.我没有访问我activiy_main_drawer.xml的"设计",它一直说"等待构建完成.".我真的不知道自己要做什么.我试图卸载并重新安装Android Studio,但它没有帮助.

android android-menu android-studio

41
推荐指数
3
解决办法
4万
查看次数

android.support.v7与`ActionBarActivity`没有菜单显示

在新的更新中,Google发布了一个新的API支持库,该库支持API级别7+的ActionBar.

我使用ActionBarSherlock直到这个更新,我编写了加载菜单的代码:

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

和菜单文件:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/item_menu_ok" android:icon="@drawable/ic_action_ok"
        android:title="@string/ok" android:showAsAction="always"></item>
    <item android:id="@+id/item_menu_cancel" android:icon="@drawable/ic_action_cancel"
        android:title="@string/cancel" android:showAsAction="always"></item>
</menu>
Run Code Online (Sandbox Code Playgroud)

设置操作栏上的菜单按钮.此代码与ActionBarSherlock完美配合.但是当我将操作栏更改为新的支持库时,操作栏中不会显示按钮.即使它们被设置为android:showAsAction="always".当我调试代码时,函数menu.getSize()返回2,这是正确的,但没有显示按钮..

为什么按钮未显示在新支持库中?

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

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