以下语句在某些设备上未执行。

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/

10-08 23:24