类铸造的任何替代方法

时间:2013-05-17 05:18:01

标签: android devise android-tabhost classcastexception android-tabs

以下声明未在某些设备上执行。

AddEvent act1 = (AddEvent) getLocalActivityManager().getCurrentActivity();

上述陈述是否有其他替代方法。在某些设备上,它可以正常工作,但在其他设备上却有例外。

Click here... Yellow text shows exception

修改:我的应用程序是在标签页面中开发的。 OnActivity结果用于从相机活动中获取图片。不知道驻留在哪里,但是当我将上述语句放入try catch时,则不会发生强制关闭,并且会显示异常。

2 个答案:

答案 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