最近我在使用android.support.v7.view.menu.MenuPopupHelper
时遇到了一个lint错误,这个错误现在已被隐藏并且仅限于在其库组中使用。
确切的消息:
MenuPopupHelper constructor can only be called from within the same library group (groupId=com.android.support)
摘自MenuPopupHelper.java
类:
/**
* Presents a menu as a small, simple popup anchored to another view.
*
* @hide
*/
@RestrictTo(LIBRARY_GROUP)
public class MenuPopupHelper implements MenuHelper {
问题:任何想法何时以及为何发生这种情况?或者我应该寻找的解决方法是什么?
我刚刚发现here这是该工具的预发布版本中的一个错误。
如果您想要项目范围的解决方法,请将下面的代码段放在项目的build.gradle
文件中
android {
lintOptions {
disable 'RestrictedApi'
}
}
要么 使用下面的注释来禁止该特定方法或类的lint警告
@SuppressLint("RestrictedApi")
尝试使用android.support.v7.widget.PopupMenu
代替:
PopupMenu popup = new PopupMenu(v.getContext(), v);
popup.inflate(R.menu.mymenu);
//or
//popup.getMenuInflater().inflate(R.menu.mymenu, popup.getMenu());
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
final int itemId = item.getItemId();
switch (itemId) {
case R.id.someid:
//do something
return true;
default:
return false;
}
}
});
popup.show();