【发布时间】: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