标签: android-menu

启用/禁用ActionBar菜单项

我有动作栏menuitems取消并保存.

menu.xml文件

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:id="@+id/saveButton" 
          android:showAsAction="always"          
          android:title="@string/save" 
          android:visible="true">

    </item>
    <item android:id="@+id/cancelButton" 
          android:showAsAction="always"         
          android:title="@string/cancel" 
          android:visible="true">        
    </item>

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

我想在活动开始时禁用保存menuitem.

我的活动代码 -

@Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.add_project);

        EditText projectName = (EditText) findViewById(R.id.editTextProjectName);   
        projectName.addTextChangedListener(new TextWatcher() {

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                configureSaveButton(s);             
            }           
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count,int after) {}
            @Override
            public void afterTextChanged(Editable s) {}
        });
    }

    @Override
    public …
Run Code Online (Sandbox Code Playgroud)

android android-menu android-actionbar

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

如何以编程方式触发/点击Android中的MenuItem?

我有这些菜单项 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_restart" android:title="Restart"
        android:orderInCategory="1" />
    <item android:id="@+id/action_clear" android:title="Clear"
        android:orderInCategory="2" />
    <item android:id="@+id/action_update" android:title="Update"
        android:orderInCategory="3" />
    <item android:id="@+id/action_about" android:title="About"
        android:orderInCategory="4" />
    <item android:id="@+id/action_try_restart" android:title="Try Restart"
        android:orderInCategory="5" />
</menu>
Run Code Online (Sandbox Code Playgroud)

我的onOptionsItemSelected方法中有这个:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    if (id == …
Run Code Online (Sandbox Code Playgroud)

android android-menu android-actionbar

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

如何在导航抽屉布局中添加标题?

[UPDATE]

我通过添加addHeaderView解决了这个问题:

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

    mTitle = mDrawerTitle = getTitle();
    mPlanetTitles = getResources().getStringArray(R.array.planets_array);
    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    mDrawerList = (ListView) findViewById(R.id.left_drawer);

    LayoutInflater inflater = getLayoutInflater();
    ViewGroup mTop = (ViewGroup)inflater.inflate(R.layout.header_listview_menu, mDrawerList, false);
    mDrawerList.addHeaderView(mTop, null, false);
Run Code Online (Sandbox Code Playgroud)

================================

我的问题很简单!

我想如何在导航抽屉中添加标题?

我已经为每个项目创建了带有listview(图标+文本)的导航抽屉.

非常感谢,

在此输入图像描述

android android-layout android-menu navigation-drawer

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

将菜单添加到空活动

我在Android Studio中创建了一个Android应用程序,并希望在其上创建一个选项菜单.我创建它作为一个空活动,现在意识到我会更好地创建一个空白活动来获取选项菜单.无论如何都要在空活动中创建选项菜单.如果有人能指点我的教程会很棒,这是我目前为止我的菜单代码.

menu_menu

<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="saveourcar.soc.MainActivity">
    <item
        android:id="@+id/action_Menu"
        android:orderInCategory="100"
        android:title="Menu"
        app:showAsAction="never" >
    <menu>
        <item
            android:id="@+id/instructions"
            android:title="Instructions"
            android:icon="@drawable/bg"/>
        <item
            android:id="@+id/hotels"
            android:title="Hotels"
            android:icon="@drawable/mechanic"/>

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

主要活动

public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_Menu) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}
Run Code Online (Sandbox Code Playgroud)

java android-menu

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

Android应用开发错误:"错误的XML块:标题大小为60或总大小为3932356大于数据大小0"

我检查了其他类似的帖子,他们建议清理构建路径,但这根本没有帮助.
我已经启动了Android应用程序开发,并且在向活动添加菜单时遇到了令人沮丧的问题.

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:id="@+id/save_tea" android:title="@string/save_tea_label" />
</menu>
Run Code Online (Sandbox Code Playgroud)

这会在Eclipse控制台中抛出"错误XML块:标头大小60或总大小3932356大于数据大小0".我有一个主应用程序活动的菜单,它工作正常,但这个不能合并到R生成的文件.

我重写了一堆我的页面,它现在似乎工作,所以我要么错过了原来的东西,要么eclipse决定重新评估文件.

android android-menu

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

无法实例化类android.support.v7.widget.SearchView

请有人帮帮我!我尝试将appcompat搜索视图添加到我的项目中.不成功.当我将android.support.v7.widget.SearchView更改为SearchView(API> 10)时,一切都很好.

我的菜单res:

<item android:id="@+id/action_search"
    android:title="@string/search_view_title"
    android:icon="@drawable/action_search"
    sabd:showAsAction="always|collapseActionView"
    sabd:actionViewClass="android.support.v7.widget.SearchView" />
Run Code Online (Sandbox Code Playgroud)

这是我如何尝试使用SeachView:

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        inflater.inflate(R.menu.teach, menu);
        mSearchItem = menu.findItem(R.id.action_search);
        mSearchItem.setVisible(true);
        mSearchView = (SearchView) MenuItemCompat.getActionView(mSearchItem);
        mSearchView.setQueryHint(getString(R.string.search_view_hint));
        mSearchView.setOnQueryTextListener(this);
    }
Run Code Online (Sandbox Code Playgroud)

这是我的清单文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="ru.rgups.time"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="10"
        android:targetSdkVersion="17" />

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/Theme.Base.AppCompat.Light"
        android:name="RTApplication">
        <activity
            android:name="ru.rgups.time.MainActivity"
            android:configChanges="orientation|keyboardHidden"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".fragments.WelcomeActivity"></activity>
        <service android:name=".spice.SampleSpiceService"></service>
        <activity …
Run Code Online (Sandbox Code Playgroud)

android android-appcompat android-menu searchview

22
推荐指数
2
解决办法
8243
查看次数

Light.DarkActionBar菜单项文本颜色不可更改?

我一直在开发的应用程序使用ActionBarSherlock,主题继承自Theme.Sherlock.Light.DarkActionBar.该设计要求溢出菜单弹出窗口具有深色背景和白色文本.这适用于没有物理菜单按钮的设备,文本显示为预期的白色.但是,如果设备具有物理菜单按钮,则显示的菜单中显示的文本仍为黑色.

我的主题包含

<item name="android:panelBackground">@drawable/menu_hardkey_panel</item>
Run Code Online (Sandbox Code Playgroud)

...其中@ drawable/menu_hardkey_panel是深色9patch.

菜单弹出窗口的结果是...... Light.DarkActionbar问题

我无法确定为什么会发生这种情况,或者如何手动更改文本的颜色.在我的主题中,我尝试了以下所有内容......

<item name="android:actionMenuTextColor">@android:color/white</item>
<item name="android:textAppearanceLargePopupMenu">@style/MyMenuTextAppearance.Large</item>
<item name="android:textAppearanceSmallPopupMenu">@style/MyMenuTextAppearance.Small</item>
Run Code Online (Sandbox Code Playgroud)

我甚至试过了

<item name="android:actionBarWidgetTheme">@style/Theme.MyApp.Dark</item>
Run Code Online (Sandbox Code Playgroud)

...... Theme.MyApp.Dark在哪里......

<style name="Theme.MyApp.Dark" parent="@style/Theme.Sherlock">
    <item name="android:dropDownListViewStyle">@style/DropDownListView</item>
    <item name="dropDownListViewStyle">@style/DropDownListView</item>
</style>
Run Code Online (Sandbox Code Playgroud)

没有人允许我将文本更改为白色.如果我让我的基本主题继承自Theme.Sherlock,问题就解决了,文本是白色的,但不幸的是,这不是一个选项.

android android-menu actionbarsherlock android-actionbar

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

getMenuInflater()方法Android上下文菜单创建中的未定义问题

我试图在片段内创建一个上下文菜单项.但是我遇到了getMenuInflater()方法的问题.这是未定义的.我已经导入了所有必要的包.谁能指出我在这里做错了什么?

这是我的代码:

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MenuInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.view.MenuItem;

public class FeaturedFragment extends Fragment {
public FeaturedFragment() {
}
public static final String ARG_SECTION_NUMBER = "section_number";

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.featured_fragment,container,false);
    registerForContextMenu(view);
    return view;
}

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo)
{
   super.onCreateContextMenu(menu, v, menuInfo);
   MenuInflater inflater = getMenuInflater(); …
Run Code Online (Sandbox Code Playgroud)

android contextmenu android-menu android-contextmenu

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

Android:自定义应用程序的菜单(例如背景颜色)

有什么方法(如果有办法)自定义菜单(由手机的MENU按钮触发的菜单).我对两件事特别感兴趣:

  • 将背景颜色从标准浅灰色更改为深灰色
  • 菜单项如何对齐.我有4个项目,它们自动对齐2x2,但我更喜欢将它们全部放在一行(1x4)

customization android android-menu

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

如何关注操作栏中的可折叠操作视图EditText项(展开时)并强制打开软键盘?

我正在使用Jake Wharton出色的ActionBarSherlock库并具有可折叠的搜索操作视图.我想在展开搜索操作视图时弹出软键盘.

我们可以在Google的" Using DialogFragments "博客文章中阅读一个推荐的方法,在DialogFragment中进行此操作(为了便于阅读,稍作修改).

// Show soft keyboard automatically
mEditText.requestFocus();
int mode = WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE;
getDialog().getWindow().setSoftInputMode(mode);
Run Code Online (Sandbox Code Playgroud)

在扩展和请求关注可折叠的EditText操作视图时,这似乎不起作用.我现在有这个.

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

    MenuItem menuItem = menu.findItem(R.id.menu_search);
    final EditText searchText = (EditText) menuItem.getActionView();

    menuItem.setOnActionExpandListener(new OnActionExpandListener() {
        @Override
        public boolean onMenuItemActionCollapse(MenuItem item) {
            return true; // Return true to collapse action view
        }

        @Override
        public boolean onMenuItemActionExpand(MenuItem item) {
            searchText.requestFocus();
            int mode = WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE;
            getWindow().setSoftInputMode(mode);
            return true; // …
Run Code Online (Sandbox Code Playgroud)

android android-softkeyboard android-menu actionbarsherlock android-actionbar

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