首页 > 解决方案 > 无法将类型(公共活动实例)转换为 Xamarin Android C# 中的活动

问题描述

我想从我的活动中访问公共课程。我有一个名为HomePageActivity(It's using AppCompatActivity) 的公共类,它是公共类活动包含另一个名为Model.User CurrentUser(它用于通过在我的数据库模型属性上调用 userEmail 来调用自登录以来的当前用户)。HomePageActivity 包含共享偏好,我将所有用户数据与当前用户、用户 ID 和电子邮件等变量一起存储,我可以从另一个类中调用它。在下一个活动(UploadActivity)中,我要访问HomePageActivity及其属性。

所以,我做什么:

  1. HomePageActivity在我的下一个活动中声明UploadActivity==> public HomePageActivity m_currentActivity;
  2. 调用m_currentActivity里面,onCreate因为我用Android.Support.V4.App.FragmentActivity==>m_currentActivity = (HomePageActivity) this.Activity;
  3. 尝试m_currentActivity在我需要的区域打电话==>m_currentActivity.idUser;

但是,我失败了。我卡住了。我无法投射 HomePageActivity。幸运的是,我可以m_currentActivity = (HomePageActivity) this.Activity;在我的Android.Support.V4.App.Fragment(在另一个片段上)使用,但是,为什么我不能在UploadActivity其中使用我的Android.Support.V4.App.FragmentActivityHomePageActivity

如果我不使用会发生什么m_currentActivity = (HomePageActivity) this.Activity; 好吧,根据我之前对片段和 UploadActivity 的反复试验,如果我不声明并强制转换 HomepageActivity,我将无法获取实体的值,例如我无法获取m_currentActivity.idUser. 如果我调试,它将返回 null 或崩溃

object reference not set to an instance of an object

我已经搜索了很多文章,但我仍然无法得到我的答案。希望能听到大家的回答和建议。预先感谢!

标签: c#androidxamarinxamarin.android

解决方案


好吧,伙计们感谢您的回复。基本上,我使用意图并从我的主类访问。在此之前,我已经将全局变量放在我的主要活动中,所以我可以调用它们并从主要活动中访问它们


推荐阅读