我如何从/向Xamarin中的另一个Android活动访问或传递自定义对象

时间:2018-06-12 13:37:14

标签: android class sockets xamarin android-activity

所以我有一个名为connector的Custom对象,它包含一个螺纹套接字,用于在不锁定UI的情况下与Arduino进行通信。但我想从多个屏幕/活动中访问此套接字。

我尝试使用静态类来包含对象,如下面的答案:

Transfer Socket from one Activity to another

但我一直得到一个"名称在当前背景下不存在"尝试从antoher活动访问它时出错。

这是我的存储类的代码:

public class ConnectorManager
{
    private static Connector connectorObject;

    public static Connector GetConnector()
    {
        return connectorObject;
    }

    public static void SetConnector(Connector connector)
    {
        connectorObject = connector;
    }
}

EDIT1: 这是我试图使用该类的方式:

ConnectorManager.SetConnector(connector);
Connector connector = ConnectorManager.GetConnector();

EDIT2:

删除代码文件并创建新代码后,问题神奇地自行修复

2 个答案:

答案 0 :(得分:0)

请您添加代码示例,您是如何在不同的活动中调用静态变量connectorObject的?

答案 1 :(得分:0)

我也会使用您链接的示例中提到的第二种方法。实际上,我的大部分沟通工作都是这样做的。

[Application]
public class AppApplication : Application
{
    public ConnectorManager ConnectorManager { get; set; }

    public AppApplication(IntPtr javaReference, JniHandleOwnership transfer) : base(javaReference, transfer)
    {
        //if you can/want create and assign your manager here
    }
}

在任何活动中,您都可以像这样访问应用程序属性:

((AppApplication)Application).ConnectorManager;