【问题标题】:Options menu (actionbar) not showing选项菜单(操作栏)未显示
【发布时间】:2013-04-17 03:03:56
【问题描述】:

我有一个显示提要项目的活动,它有一个上下文菜单来完成分享、添加到您的收藏夹等操作。我已将项目从上下文菜单移动到选项菜单,所以它可以操作直接从操作栏执行。但是选项菜单没有出现在操作栏中(它之前确实出现过)。我还没有为这些项目添加任何操作,但它们应该会显示在选项菜单中。

FeedItemActivity:

 package com.mfavez.android.feedgoal;

 someimports....
 import com.mfavez.android.feedgoal.storage.SharedPreferencesHelper;


 public class FeedItemActivity extends Activity {

private static final String LOG_TAG = "FeedItemActivity";
private static final int KILL_ACTIVITY_CODE = 1;

private DbFeedAdapter mDbFeedAdapter;
private long mItemId = -1;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    //only show bar for honeycomb and over
    int currentAPIVersion = android.os.Build.VERSION.SDK_INT;

    if (currentAPIVersion >= android.os.Build.VERSION_CODES.HONEYCOMB) {

    ActionBar bar = getActionBar();
    bar.setDisplayHomeAsUpEnabled(true);
    bar.show();
    }
    //end of actionbardisplay

    mDbFeedAdapter = new DbFeedAdapter(this);
    mDbFeedAdapter.open();

    TrackerAnalyticsHelper.createTracker(this);

    mItemId = savedInstanceState != null ? savedInstanceState.getLong(DbSchema.ItemSchema._ID) : -1;

    if (mItemId == -1) {
        Bundle extras = getIntent().getExtras();            
        mItemId = extras != null ? extras.getLong(DbSchema.ItemSchema._ID) : -1;
    }

    Item item = mDbFeedAdapter.getItem(mItemId);
    if (item.isFavorite())
        setContentView(R.layout.item_favorite);
    else
        setContentView(R.layout.item_notfavorite);

    /*
     * To test ads in emulator, remove ads:loadAdOnCreate="true" in layout
    if (SharedPreferencesHelper.useAdmob(this)) {
        int resourceId = getResources().getIdentifier("adView", "id", this.getPackageName());
        AdView adView = (AdView)this.findViewById(resourceId);
        //AdView adView = (AdView)this.findViewById(R.id.adView);
        AdRequest request = new AdRequest();
        request.addTestDevice(AdRequest.TEST_EMULATOR);
        adView.loadAd(request);
    }
    */
    AdRequest request = new AdRequest();
    request.addTestDevice(AdRequest.TEST_EMULATOR);

    TextView title = (TextView)findViewById(R.id.title);
    title.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            TrackerAnalyticsHelper.trackEvent(FeedItemActivity.this,LOG_TAG,"Link_Title",mDbFeedAdapter.getItem(mItemId).getLink().toString(),1);
            adjustLinkableTextColor (v);
            startItemWebActivity();
        }
    });

    TextView channel = (TextView)findViewById(R.id.channel);
    channel.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            Feed feed = mDbFeedAdapter.getFeed(mDbFeedAdapter.getItemFeedId(mItemId));
            String channelHomepage = feed.getHomePage().toString();
            TrackerAnalyticsHelper.trackEvent(FeedItemActivity.this,LOG_TAG,"Link_Channel",channelHomepage,1);
            adjustLinkableTextColor (v);
            if (SharedPreferencesHelper.isOnline(FeedItemActivity.this)) {
                Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(channelHomepage));
                startActivity(intent);
            } else
                showDialog(SharedPreferencesHelper.DIALOG_NO_CONNECTION);
        }
    });

    Button read_online = (Button)findViewById(R.id.read);
    read_online.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            TrackerAnalyticsHelper.trackEvent(FeedItemActivity.this,LOG_TAG,"Button_ReadOnline",mDbFeedAdapter.getItem(mItemId).getLink().toString(),1);
            startItemWebActivity();
        }
    });

    registerForContextMenu(findViewById(R.id.item));
}

private void startItemWebActivity() {
    if (SharedPreferencesHelper.isOnline(FeedItemActivity.this)) {
        Intent intent = new Intent(FeedItemActivity.this, FeedWebActivity.class);
        intent.putExtra(DbSchema.ItemSchema._ID, mItemId);
        startActivity(intent);
    } else
        showDialog(SharedPreferencesHelper.DIALOG_NO_CONNECTION);
}

private void adjustLinkableTextColor (View v) {
    TextView textView = (TextView) v;
    textView.setTextColor(R.color.color2);

}

private void displayItemView() {
    if (mItemId != -1) {
        Item item = mDbFeedAdapter.getItem(mItemId);
        TextView titleView = (TextView) findViewById(R.id.title);
        TextView channelView = (TextView) findViewById(R.id.channel);
        TextView pubdateView = (TextView) findViewById(R.id.pubdate);
        TextView contentView = (TextView) findViewById(R.id.content);
        if (titleView != null)
            titleView.setText(item.getTitle());
        if (channelView != null) {
            Feed feed = mDbFeedAdapter.getFeed(mDbFeedAdapter.getItemFeedId(mItemId));
            if (feed != null)
                channelView.setText(feed.getTitle());
        } 
        if (pubdateView != null) {
            //DateFormat df = new SimpleDateFormat(getResources().getText(R.string.pubdate_format_pattern);
            //pubdateView.setText(df.format(item.getPubdate()));
            CharSequence formattedPubdate = DateFormat.format(getResources().getText(R.string.pubdate_format_pattern), item.getPubdate());
            pubdateView.setText(formattedPubdate);
        }
        if (contentView != null) {
            String content_description = item.getContent();
            if (content_description == null)
                content_description = item.getDescription();
            if (content_description != null)
                //contentView.setText(content_description,TextView.BufferType.SPANNABLE);
                contentView.setText(content_description);
        }

        // set item as read (case when item is displayed from next/previous contextual menu or buttons)
        ContentValues values = new ContentValues();
        values.put(DbSchema.ItemSchema.COLUMN_READ, DbSchema.ON);
        mDbFeedAdapter.updateItem(mItemId, values, null);

        TrackerAnalyticsHelper.trackPageView(this,"/offlineItemView");
    }
}

@Override
protected void onStart() {
    super.onStart();
    TrackerAnalyticsHelper.startTracker(this);
}

@Override
protected void onResume() {
    super.onResume();
    displayItemView();
}

@Override
protected void onStop() {
    super.onStop();
    TrackerAnalyticsHelper.stopTracker(this);
}

@Override
protected void onDestroy() {
    super.onDestroy();
    mDbFeedAdapter.close();
}

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putLong(DbSchema.ItemSchema._ID, mItemId);
}

//---------------------------------------------------------------
//Problems is around here I think!
//---------------------------------------------------------------


public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);

    MenuInflater inflater = getMenuInflater();
    Item item = mDbFeedAdapter.getItem(mItemId);

    if (SharedPreferencesHelper.isDynamicMode(this)) {

        if (item != null) {
            long feedId = mDbFeedAdapter.getItemFeedId(mItemId);
            boolean isFirstItem = false;
            boolean isLastItem = false;
            if (mItemId == mDbFeedAdapter.getFirstItem(feedId).getId())
                isFirstItem = true;
            else if (mItemId == mDbFeedAdapter.getLastItem(feedId).getId())
                isLastItem = true;

            if (item.isFavorite()) {
                if (isFirstItem)
                    inflater.inflate(R.menu.ctx_menu_item_dyn_offline_notfav_next, menu);
                else if (isLastItem)
                    inflater.inflate(R.menu.ctx_menu_item_dyn_offline_notfav_prev, menu);
                else
                    inflater.inflate(R.menu.ctx_menu_item_dyn_offline_notfav_next_prev, menu);
            } else {
                if (isFirstItem)
                    inflater.inflate(R.menu.ctx_menu_item_dyn_offline_fav_next, menu);
                else if (isLastItem)
                    inflater.inflate(R.menu.ctx_menu_item_dyn_offline_fav_prev, menu);
                else
                    inflater.inflate(R.menu.ctx_menu_item_dyn_offline_fav_next_prev, menu);
            }
        }

        MenuItem channelsMenuItem = (MenuItem) menu.findItem(R.id.menu_opt_channels);
        channelsMenuItem.setIntent(new Intent(this,FeedChannelsActivity.class));
    } else {

        if (item != null) {
            long feedId = mDbFeedAdapter.getItemFeedId(mItemId);
            boolean isFirstItem = false;
            boolean isLastItem = false;
            if (mItemId == mDbFeedAdapter.getFirstItem(feedId).getId())
                isFirstItem = true;
            else if (mItemId == mDbFeedAdapter.getLastItem(feedId).getId())
                isLastItem = true;

            if (item.isFavorite()) {
                if (isFirstItem)
                    inflater.inflate(R.menu.ctx_menu_item_dyn_offline_notfav_next, menu);
                else if (isLastItem)
                    inflater.inflate(R.menu.ctx_menu_item_dyn_offline_notfav_prev, menu);
                else
                    inflater.inflate(R.menu.ctx_menu_item_dyn_offline_notfav_next_prev, menu);
            } else {
                if (isFirstItem)
                    inflater.inflate(R.menu.ctx_menu_item_dyn_offline_fav_next, menu);
                else if (isLastItem)
                    inflater.inflate(R.menu.ctx_menu_item_dyn_offline_fav_prev, menu);
                else
                    inflater.inflate(R.menu.ctx_menu_item_dyn_offline_fav_next_prev, menu);
            }
        }

        // Channels menu item
        if (mDbFeedAdapter.getFeeds().size() > 1) {
            MenuItem channelsMenuItem = (MenuItem) menu.findItem(R.id.menu_opt_channels);
            SubMenu subMenu = channelsMenuItem.getSubMenu();

            List<Feed> feeds = mDbFeedAdapter.getFeeds();
            Iterator<Feed> feedIterator = feeds.iterator();
            Feed feed = null;
            MenuItem channelSubMenuItem = null;
            Intent intent = null;
            int order = 0;
            while (feedIterator.hasNext()) {
                feed = feedIterator.next();
                channelSubMenuItem = subMenu.add(SharedPreferencesHelper.CHANNEL_SUBMENU_GROUP, Menu.NONE, order, feed.getTitle());

                if (feed.getId() == SharedPreferencesHelper.getPrefTabFeedId(this, mDbFeedAdapter.getFirstFeed().getId()))
                    channelSubMenuItem.setChecked(true);

                intent = new Intent(this, FeedTabActivity.class);
                intent.putExtra(DbSchema.FeedSchema._ID, feed.getId());
                channelSubMenuItem.setIntent(intent);

                order++;
            }

            subMenu.setGroupCheckable(SharedPreferencesHelper.CHANNEL_SUBMENU_GROUP, true, true);
        } else {
            menu.removeItem(R.id.menu_opt_channels);
        }
    }

    // Home menu item
    MenuItem menuItem = (MenuItem) menu.findItem(R.id.menu_opt_home);
    menuItem.setIntent(new Intent(this, FeedTabActivity.class));     

    // Preferences menu item
    MenuItem preferencesMenuItem = (MenuItem) menu.findItem(R.id.menu_opt_preferences);
    preferencesMenuItem.setIntent(new Intent(this,FeedPrefActivity.class));

    return true;
}

public boolean onOptionsItemSelected(MenuItem item) {
      //using icon to go up in honeycomb and higher
       switch (item.getItemId()) 
       {        
          case android.R.id.home:            
             Intent intent = new Intent(this, FeedTabActivity.class);            
             intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
             startActivity(intent);            
             return true;        
          default:            
       }
       //thats it
    switch (item.getItemId()) {
        case R.id.menu_opt_home:
            TrackerAnalyticsHelper.trackEvent(this,LOG_TAG,"OptionMenu_Home","Home",1);
            // Kill the FeedTabActivity that started this FeedItemActivity, because tab channel id may have changed and wouldn't be correct (wouldn't be the initial FeedTabActivity channel id) if back button is pressed
            setResult(RESULT_OK);
            startActivity(item.getIntent());
            //finish();
            return true;
        case R.id.menu_opt_channels:
            TrackerAnalyticsHelper.trackEvent(this,LOG_TAG,"OptionMenu_Channels","Channels",1);
            if (SharedPreferencesHelper.isDynamicMode(this)) {
                // Kill the FeedTabActivity that started this FeedItemActivity, because tab channel id may have changed and wouldn't be correct (wouldn't be the initial FeedTabActivity channel id) if back button is pressed
                setResult(RESULT_OK);
                startActivityForResult(item.getIntent(),KILL_ACTIVITY_CODE);
            } else {
                //do nothing, default case will be handled
            }
            return true;
        case R.id.menu_opt_preferences:
            TrackerAnalyticsHelper.trackEvent(this,LOG_TAG,"OptionMenu_Preferences","Preferences",1);
            startActivity(item.getIntent());
            return true;
        case R.id.menu_opt_about:
            TrackerAnalyticsHelper.trackEvent(this,LOG_TAG,"OptionMenu_AboutDialog","About",1);
            showDialog(SharedPreferencesHelper.DIALOG_ABOUT);
            return true;
        default:
            if (item.getGroupId() == SharedPreferencesHelper.CHANNEL_SUBMENU_GROUP) {
                // Kill the FeedTabActivity that started this FeedItemActivity, because tab channel id is now changing and won't be correct (won't be the initial FeedTabActivity channel id) if back button is pressed
                setResult(RESULT_OK);
                startActivity(item.getIntent());
                //finish();
                return true;
            }
    }
    return super.onOptionsItemSelected(item);
}



@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
    super.onActivityResult(requestCode, resultCode, intent);

    switch(requestCode) {
        case KILL_ACTIVITY_CODE:
            if (resultCode == RESULT_OK)
                finish();
            break;
        }
}

public void onCreateContextMenu (ContextMenu menu, View v, ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);

    if (v.getId() == R.id.item) {
        menu.setHeaderTitle (R.string.ctx_menu_title);
        MenuInflater inflater = getMenuInflater();

        Item item = mDbFeedAdapter.getItem(mItemId);

        if (item != null) {
            long feedId = mDbFeedAdapter.getItemFeedId(mItemId);
            boolean isFirstItem = false;
            boolean isLastItem = false;
            if (mItemId == mDbFeedAdapter.getFirstItem(feedId).getId())
                isFirstItem = true;
            else if (mItemId == mDbFeedAdapter.getLastItem(feedId).getId())
                isLastItem = true;

            if (item.isFavorite()) {
                if (isFirstItem)
                    inflater.inflate(R.menu.ctx_menu_item_offline_notfav_next, menu);
                else if (isLastItem)
                    inflater.inflate(R.menu.ctx_menu_item_offline_notfav_prev, menu);
                else
                    inflater.inflate(R.menu.ctx_menu_item_offline_notfav_next_prev, menu);
            } else {
                if (isFirstItem)
                    inflater.inflate(R.menu.ctx_menu_item_offline_fav_next, menu);
                else if (isLastItem)
                    inflater.inflate(R.menu.ctx_menu_item_offline_fav_prev, menu);
                else
                    inflater.inflate(R.menu.ctx_menu_item_offline_fav_next_prev, menu);
            }
        }
    }
}


public boolean onContextItemSelected(MenuItem menuItem) {
    Item item = mDbFeedAdapter.getItem(mItemId);
    ImageView favView = (ImageView) findViewById(R.id.fav);
    ContentValues values = null;
    Intent intent = null;
    long feedId = -1;

    switch (menuItem.getItemId()) {
        case R.id.read_online:
            TrackerAnalyticsHelper.trackEvent(this,LOG_TAG,"ContextMenu_ReadOnline",item.getLink().toString(),1);
            startItemWebActivity();
            return true;
        case R.id.add_fav:
            TrackerAnalyticsHelper.trackEvent(this,LOG_TAG,"ContextMenu_AddFavorite",item.getLink().toString(),1);
            //item.favorite();
            values = new ContentValues();
            values.put(DbSchema.ItemSchema.COLUMN_FAVORITE, DbSchema.ON);
            mDbFeedAdapter.updateItem(mItemId, values, null);
            favView.setImageResource(R.drawable.fav);
            Toast.makeText(this, R.string.add_fav_msg, Toast.LENGTH_SHORT).show();
            return true;
        case R.id.remove_fav:
            TrackerAnalyticsHelper.trackEvent(this,LOG_TAG,"ContextMenu_RemoveFavorite",item.getLink().toString(),1);
            //item.unfavorite();
            Date now = new Date();
            long diffTime = now.getTime() - item.getPubdate().getTime();
            long maxTime = SharedPreferencesHelper.getPrefMaxHours(this) * 60 * 60 * 1000; // Max hours expressed in milliseconds
            // test if item has expired
            if (maxTime > 0 && diffTime > maxTime) {
                AlertDialog.Builder builder = new AlertDialog.Builder(this);
                builder.setMessage(R.string.remove_fav_confirmation)
                       .setCancelable(false)
                       .setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
                           public void onClick(DialogInterface dialog, int id) {
                                ContentValues values = new ContentValues();
                                values.put(DbSchema.ItemSchema.COLUMN_FAVORITE, DbSchema.OFF);
                                ImageView favView = (ImageView) findViewById(R.id.fav);
                                favView.setImageResource(R.drawable.no_fav);
                                mDbFeedAdapter.updateItem(mItemId, values, null);
                                Toast.makeText(FeedItemActivity.this, R.string.remove_fav_msg, Toast.LENGTH_SHORT).show();
                           }
                       })
                       .setNegativeButton(R.string.no, new DialogInterface.OnClickListener() {
                           public void onClick(DialogInterface dialog, int id) {
                                dialog.cancel();
                           }
                       });
                builder.create().show();
            } else {
                values = new ContentValues();
                values.put(DbSchema.ItemSchema.COLUMN_FAVORITE, DbSchema.OFF);
                mDbFeedAdapter.updateItem(mItemId, values, null);
                favView.setImageResource(R.drawable.no_fav);
                Toast.makeText(this, R.string.remove_fav_msg, Toast.LENGTH_SHORT).show();
            }
            return true;
        case R.id.next:
            TrackerAnalyticsHelper.trackEvent(this,LOG_TAG,"ContextMenu_NextItem",item.getLink().toString(),1);
            feedId = mDbFeedAdapter.getItemFeedId(mItemId);
            intent = new Intent(this, FeedItemActivity.class);
            intent.putExtra(DbSchema.ItemSchema._ID, mDbFeedAdapter.getNextItemId(feedId, mItemId));
            startActivity(intent);
            finish();
            return true;
        case R.id.previous:
            TrackerAnalyticsHelper.trackEvent(this,LOG_TAG,"ContextMenu_PreviousItem",item.getLink().toString(),1);
            feedId = mDbFeedAdapter.getItemFeedId(mItemId);
            intent = new Intent(this, FeedItemActivity.class);
            intent.putExtra(DbSchema.ItemSchema._ID, mDbFeedAdapter.getPreviousItemId(feedId, mItemId));
            startActivity(intent);
            finish();
            return true;
        case R.id.share:
            TrackerAnalyticsHelper.trackEvent(this,LOG_TAG,"ContextMenu_Share",item.getLink().toString(),1);
            item = mDbFeedAdapter.getItem(mItemId);
            if (item != null) {
                Intent shareIntent = new Intent(Intent.ACTION_SEND);
                shareIntent.putExtra(Intent.EXTRA_SUBJECT, String.format(getString(R.string.share_subject), getString(R.string.app_name)));
                shareIntent.putExtra(Intent.EXTRA_TEXT, item.getTitle() + " " + item.getLink().toString());
                shareIntent.setType("text/plain");
                startActivity(Intent.createChooser(shareIntent, getString(R.string.share)));
            }
            return true;
        default:
            return super.onContextItemSelected(menuItem);
    }
}

@Override
protected Dialog onCreateDialog(int id) {
    Dialog dialog = null;
    CharSequence title = null;
    LayoutInflater inflater = null;
    View dialogLayout = null;
    AlertDialog.Builder builder = null;
    switch (id) {
        case SharedPreferencesHelper.DIALOG_ABOUT:
            //title = getResources().getText(R.string.app_name) + " - " + getResources().getText(R.string.version) + " " + SharedPreferencesHelper.getVersionName(this);
            title = getString(R.string.app_name) + " - " + getString(R.string.version) + " " + SharedPreferencesHelper.getVersionName(this);

            /*
             * Without cancel button
            dialog = new Dialog(this);
            dialog.setContentView(R.layout.dialog_about);
            dialog.setTitle(title);
            */
            inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
            dialogLayout = inflater.inflate(R.layout.dialog_about, null);
            TextView childView = null;
            if (getString(R.string.website).equals("")) {
                childView = (TextView) dialogLayout.findViewById(R.id.website);
                childView.setVisibility(View.GONE);
            }
            if (getString(R.string.email).equals("")) {
                childView = (TextView) dialogLayout.findViewById(R.id.email);
                childView.setVisibility(View.GONE);
            }
            if (getString(R.string.contact).equals("")) {
                childView = (TextView) dialogLayout.findViewById(R.id.contact);
                childView.setVisibility(View.GONE);
            }
            if (getString(R.string.powered).equals("")) {
                childView = (TextView) dialogLayout.findViewById(R.id.powered);
                childView.setVisibility(View.GONE);
            }
            builder = new AlertDialog.Builder(this);
            builder.setView(dialogLayout)
                   .setTitle(title)
                   .setIcon(R.drawable.ic_dialog)
                   .setNeutralButton(R.string.close, new DialogInterface.OnClickListener() {
                       public void onClick(DialogInterface dialog, int id) {
                            dialog.cancel();
                       }
                   });
            dialog = builder.create();
            break;
        case SharedPreferencesHelper.DIALOG_NO_CONNECTION:
            title = getString(R.string.error);
            inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
            dialogLayout = inflater.inflate(R.layout.dialog_no_connection, null);
            builder = new AlertDialog.Builder(this);
            builder.setView(dialogLayout)
                   .setTitle(title)
                   .setIcon(R.drawable.ic_dialog)
                   .setNeutralButton(R.string.ok, new DialogInterface.OnClickListener() {
                       public void onClick(DialogInterface dialog, int id) {
                            dialog.cancel();
                       }
                   });
            dialog = builder.create();
            break;
        default:
            dialog = null;
        }
      return dialog;
   }
 }

我的旧 FeedItemActivity: http://pastebin.com/4rV9uq15

希望有人能帮帮我,非常感谢!

【问题讨论】:

  • 按下设备或模拟器的 MENU 按钮会发生什么?
  • 在我的 nexus 4 上,没有显示菜单按钮,这意味着如果有任何菜单按钮就不会发生任何事情。但我会在模拟器上测试
  • 刚刚测试过,很遗憾没有任何反应。
  • 你试过我的答案了吗?
  • 我今天会尝试,但我认为我不会工作,因为在每种情况下都必须加载不同的选项菜单布局文件,正如你所看到的那样,getmenuinflator,我膨胀了一个不同的菜单,取决于它是第一个、最后一个、最喜欢的还是动态的。但我认为这个问题与膨胀有关。

标签: android android-optionsmenu


【解决方案1】:

如果您想在底部的操作栏中设置菜单,请在清单中使用它。

android:uiOptions="splitActionBarWhenNarrow"

或者如果你想在顶部操作栏中设置它,你必须使用 xml,否则只有在单击菜单时才会显示

【讨论】:

  • 正在显示操作栏,并且选项菜单与 setcontentview 之前设置的操作栏一起使用,以确保我刚刚尝试过您的解决方案,但不幸的是没有任何变化
  • 感谢您的帮助,但问题是右上角的菜单按钮 (goo.gl/uSt8V) 根本没有显示,实际上除了标题和徽标正在显示在操作栏中。
  • 抱歉,如果没有确保您的条件按预期工作可能是一个错误,请全部调试
  • @Mark029348 在您正在测试的设备上是否有硬 MEN|U 按钮?
  • 在模拟器上是的,在我的手机上不是,但是我在旧的 FeedItemActivity 的操作栏中显示了 3 个点 (goo.gl/uSt8V)。并且 3 个点应该仍然存在以在新的 FeedItemActivity 中显示菜单,但它们不是,这就是为什么我的问题是:“为什么操作栏中的选项菜单没有显示”
【解决方案2】:

我认为问题是你从来没有在这里夸大你的菜单

public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);

MenuInflater inflater = getMenuInflater();
Item item = mDbFeedAdapter.getItem(mItemId);

您创建了充气机,但不使用它。改成

public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);

MenuInflater inflater = getMenuInflater();
inflater.inflate((R.menu.mainmenu, menu);    // you forgot this line here where mainmenu is your menu xml
Item item = mDbFeedAdapter.getItem(mItemId);

【讨论】:

  • 我正在使用我的充气机,但我在几行之后使用它,如果项目是最喜欢的、动态的、静态的、第一个项目、最后一个项目,我正在尝试加载不同的菜单布局文件等等。也许我做错了,但我不知道在哪里。
猜你喜欢
  • 2014-06-29
  • 1970-01-01
  • 2015-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多