Android - 错误:无法覆盖SherlockActivity中的最终方法

时间:2013-07-29 20:06:07

标签: android actionbarsherlock

将此方法添加到我的课程中时出现此错误:

  @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  

我在其他项目中使用此方法而且我没有收到该错误。有谁知道为什么这个错误开始发生在这里?

谢谢!

2 个答案:

答案 0 :(得分:9)

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

要解决此问题,只需从Menu,MenuItems等中删除导入,然后从com.sherlockbar导入,因为您要覆盖正确的方法。

答案 1 :(得分:2)

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

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

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