【问题标题】:How to disable api level check for a specific code snippet如何禁用特定代码片段的 api 级别检查
【发布时间】:2014-03-03 21:24:41
【问题描述】:

如何对给出以下错误的特定代码行禁用 api 级别检查:

Call requires API level 14 (current min is 11): android.view.MenuItem#getActionProvider

这是它给出错误的地方 getActionProvider

public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_server_status, menu);
    MenuItem item = menu.findItem(R.id.menu_item_share);
    if(android.os.Build.VERSION.SDK_INT >= 14) {
    mShareActionProvider = (ShareActionProvider) item.getActionProvider();
    // Create the share Intent
    String playStoreLink = "https://play.google.com/store/apps/details?id=" +
        getPackageName();
    String yourShareText = "Install this app " + playStoreLink;
    Intent shareIntent = ShareCompat.IntentBuilder.from(this)
        .setType("text/plain").setText(yourShareText).getIntent();
    // Set the share Intent
    mShareActionProvider.setShareIntent(shareIntent);
    }
    return true;
}

这是一个适用于所有 API 11+ 的菜单,如果它是 14+,那么共享按钮应该可以正常工作,否则我将从菜单中隐藏该按钮,甚至加载另一个菜单。

我尝试使用 @TargetApi 但是当我这样做时我尝试创建另一个 onCreateOptionsMenu 但即使我使用 @TargetApi

更好的是有一个支持 API 11+ 的分享按钮吗?

【问题讨论】:

  • 在你的菜单里面,只检查构建目标,如果高于 11 则使用 actionProvider 否则使用另一种选择。

标签: android


【解决方案1】:

我尝试使用@TargetApi

这是正确的答案。

当我这样做时,我尝试创建另一个 onCreateOptionsMenu

您不需要另一个onCreateOptionsMenu() 方法。

更好的是有一个支持 API 11+ 的分享按钮吗?

android.widget.ShareActionProvider 适用于 API 级别 14+。 android.support.v4.view.ShareActionProvider 适用于 API 级别 4+,如果使用的是 AppCompat 操作栏反向移植。

请注意,几乎没有设备运行 API 级别 11-13,因此今天担心 11 并不是特别重要。

【讨论】:

  • pocket-lint.com/news/107777-android-honeycomb-android-3-devices 这显示了一些 API 级别 11-13 蜂窝设备
  • @Waqleh:那篇博文已经有将近三年的历史了。 Android device dashboard 显示,0.1% 的 Android 设备运行 API 级别 13,只有不到 0.1% 的 Android 设备运行 API 级别 11 和 12。
  • 如果我使用@TargetApi,菜单会在 api 级别 11 上运行吗?这个菜单不仅有分享按钮,我需要这些按钮才能工作
  • @Waqleh - 2011 年 9 月的一篇文章与 2014 年 1 月无关。
  • @Waqleh:“如果我使用 TargetApi,菜单会在 api 级别 11 上运行吗?” -- 没有。
猜你喜欢
  • 2013-09-07
  • 1970-01-01
  • 2015-09-13
  • 2016-04-04
  • 2011-11-02
  • 1970-01-01
  • 2021-08-27
  • 1970-01-01
  • 2021-08-27
相关资源
最近更新 更多