以下声明未在某些设备上执行。
AddEvent act1 = (AddEvent) getLocalActivityManager().getCurrentActivity();
上述陈述是否有其他替代方法。在某些设备上,它可以正常工作,但在其他设备上却有例外。
修改:我的应用程序是在标签页面中开发的。 OnActivity结果用于从相机活动中获取图片。不知道驻留在哪里,但是当我将上述语句放入try catch时,则不会发生强制关闭,并且会显示异常。
答案 0 :(得分:3)
问题不在于强制转换,而在于假设getLocalActivityManager().getCurrentActivity()
返回的对象属于AddEvent
类型。很难说getLocalActivityManager().getCurrentActivity()
在没有查看实现的情况下返回一个不是AddEvent类型的Object的情况。
以下代码将检查返回的Object是否确实类型为AddEvent
:
if(getLocalActivityManager().getCurrentActivity() instanceof AddEvent){
AddEvent act1 = (AddEvent) getLocalActivityManager().getCurrentActivity();
}
但在您的情况下,建议检查getLocalActivityManager().getCurrentActivity()
返回fable.eventippo.Home
实例的情况与fable.eventippo.AddEvent
的对比情况。
答案 1 :(得分:2)
我不确定你在哪里写这行,但logcat输出说:你试图将Home
活动投射到AddEvent
,这就是为什么它给你ClassCastException
。
仅供参考,getLocalActivityManager().getCurrentActivity();
正在返回Home
。