在操作栏中为后退箭头定义FLAG_ACTIVITY_NO_ANIMATION
以在单击工具栏后退箭头时更正动画后,将返回警告。摆脱这种警告的最佳方法是什么?
方法调用' addFlags'可能会产生' java.lang.NullPointerException'
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
final Intent intent = getParentActivityIntent();
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
答案 0 :(得分:1)
将其包装成if intent!= null。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
final Intent intent = getParentActivityIntent();
if(intent != null){
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
}else{
//Do some error handling.
}
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
答案 1 :(得分:0)
来自getParentActivityIntent
:
@return:一个新的Intent,定位此活动的已定义父级,如果是,则为null 没有有效的父母。
只有在没有父Activity
的情况下,此方法才会返回null,因此它们会为返回值标记@Nullable
注释。这就是你收到警告的原因。
如果您确定已在清单中定义了父Activity
,则无需担心NullPointerException
,您可以取消此警告。
要禁止,您必须向方法添加@SuppressWarnings("ConstantConditions")
。
最好在注释上方添加注释,说明您为何禁止警告。