如何禁用给出以下错误的特定代码行的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 +一起使用的共享按钮吗?
答案 0 :(得分:1)
我尝试使用@TargetApi
这是正确的答案。
当我这样做时,我试图创建另一个onCreateOptionsMenu
您不需要其他onCreateOptionsMenu()
方法。
更好的是有一个与API 11 +一起使用的共享按钮吗?
android.widget.ShareActionProvider
适用于API Level 14+。 android.support.v4.view.ShareActionProvider
适用于API Level 4+,如果使用AppCompat操作栏后台。
请注意,几乎没有设备运行API Level 11-13,所以担心11在今天并不特别重要。