android - 类转换的任何替代方法

标签 android devise android-tabhost classcastexception android-tabs

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

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

上面的语句是否有任何替代方法。在某些设备上它工作正常,但在其他设备上它会出现异常。

Click here... Yellow text shows exception

编辑:我的应用程序是在选项卡中开发的。 OnActivity 结果用于从相机 Activity 中获取图片。不知道驻留在哪里,但是当我将上面的语句放在 try catch 中时,没有强制关闭发生,并且在那里显示了异常。

最佳答案

问题不在于转换,而是假设 getLocalActivityManager().getCurrentActivity() 返回的对象是 AddEvent 类型。在不查看您的实现的情况下,很难说 getLocalActivityManager().getCurrentActivity() 在什么情况下返回不是 AddEvent 类型的对象。

以下代码将检查返回的对象是否确实是 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/

相关文章:

android - 从一项 Activity 到另外两项

android - 在 View 寻呼机中显示相邻 fragment 的一部分

android - OnActivityResult 在 TabActivityGroup 中不起作用?

android - 当应用程序处于后台时,Flutter 通知为空白

android - 读取服务中 Activity 存储的 SharedPreferences?

ruby-on-rails - 首次登录时如何将 Devise 路由至欢迎屏幕?

ruby-on-rails - 如何使用 Devise/CanCan 保护已安装的 Engine 资源?

ruby-on-rails - 用户注册时设计 "Confirmation token is invalid"

Android Viewpager 在第一次加载时显示错误数据

Android FragmentTab 主机和 Fragments 内的 Fragments