Android 如何禁用特定代码段的api级别检查
如何对出现以下错误的特定代码行禁用api级别检查:Android 如何禁用特定代码段的api级别检查,android,Android,如何对出现以下错误的特定代码行禁用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
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;
}
这是一个适用于所有API11+的菜单,如果是14+,则共享按钮应正常工作,否则我将从菜单中隐藏该按钮,甚至加载另一个菜单
我尝试使用@TargetApi,但当我这样做时,我尝试创建另一个onCreateOptions菜单,但即使使用@TargetApi也无法创建两个同名函数
更好的是有一个与API 11+一起工作的共享按钮吗
我试着使用@TargetApi
这是正确的答案
当我这样做时,我尝试创建另一个OnCreateOptions菜单
您不需要另一个onCreateOptions菜单()
方法
更好的是有一个与API 11+一起工作的共享按钮吗
android.widget.ShareActionProvider
在API级别14+上工作android.support.v4.view.ShareActionProvider
适用于API级别4+,如果您使用AppCompat操作栏后端口
请注意,实际上没有运行API级别11-13的设备,因此担心11在今天并不特别重要。在您的菜单中,只需检查构建目标,如果高于11,则使用actionProvider,否则使用其他替代方案。这显示了一些API级别11-13的蜂窝devices@Waqleh当前位置那篇博文快三年了。显示0.1%的Android设备运行API级别13,不到0.1%的Android设备运行API级别11和12。如果我使用@TargetApi,菜单会在API级别11上运行吗?这个菜单不仅有一个共享按钮,我还需要这些按钮work@Waqleh-2011年9月的一篇文章与2014年1月无关。@Waqleh:“如果我使用TargetApi,菜单是否会在api级别11上运行?”--否。