2

将此方法添加到我的类时出现此错误:

  @Override
  public boolean onCreateOptionsMenu(Menu menu) 
  {
      // Inflate your menu.     
      getSupportMenuInflater().inflate(R.menu.share_action_provider, menu);

      // Set file with share history to the provider and set the share intent.
      MenuItem actionItem = menu.findItem(R.id.menu_item_share_action_provider_action_bar);
      ShareActionProvider actionProvider = (ShareActionProvider) actionItem.getActionProvider();        

      //actionProvider.setShareHistoryFileName(ShareActionProvider.DEFAULT_SHARE_HISTORY_FILE_NAME);
      // Note that you can set/change the intent any time,
      // say when the user has selected an image.
      actionProvider.setShareIntent(createShareIntent());

      return true;
  }   

这是我声明类的方式:

public class MainActivity extends SherlockActivity implements ActionBar.OnNavigationListener  

我在其他项目中也有这种方法,但我没有得到那个错误。有谁知道为什么这个错误开始发生在这里?

谢谢!

4

2 回答 2

9

SherlockActivity 确实将这些方法覆盖为 final,因此框架可以自行处理。

要解决此问题,请仅删除来自 Menu、MenuItems 等的导入并从 com.sherlockbar 导入,因为您覆盖了正确的方法。

于 2013-07-29T20:13:30.250 回答
2

您可能使用了错误的Menu类。

SherlockActivity覆盖并最终确定 Android 标准onCreateOptionsMenu(android.view.Menu menu)方法。

它还声明了(新的,重载的)方法onCreateOptionsMenu(Menu menu),该方法采用com.actionbarsherlock.view.Menu.

于 2013-07-29T20:13:28.497 回答