以下语句在某些设备上未执行。
AddEvent act1 = (AddEvent) getLocalActivityManager().getCurrentActivity();
上述声明是否有其他替代方法。在某些设备上,它可以正常工作,但在其他设备上,它会给出异常。
编辑:我的应用程序在选项卡中开发。 OnActivity结果用于从相机 Activity 中获取图片。不知道它在哪里,但是当我将上面的语句放在try catch中时,没有强制关闭发生,并且在那里显示了异常。
最佳答案
问题不是真正的转换,而是getLocalActivityManager().getCurrentActivity()
返回的Object的类型为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
)。关于android - 类转换的任何替代方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16601902/