使用Application对象存储数据和全局变量

时间:2014-02-01 04:56:44

标签: android class xamarin global-variables

在Xamarin中,我想使用Application对象存储数据和全局变量。

我查看了此资源以获取此代码: http://www.helloandroid.com/tutorials/maintaining-global-application-state

这是我的代码:

    public class HelloApplication : Application 
    {
        private int GlobalVariable = 1;

        public int GetGlobalVariable()
        {
            return GlobalVariable;
        }

        public void SetGlobalVariable(int GlobalVariable)
        {
            this.GlobalVariable = GlobalVariable;
        }
    }

我正在尝试使用此代码引用该类:

    ((HelloApplication)GetApplication()).setGlobalVariable(10);
    int variable=((HelloApplication)GetApplication()).getGlobalVariable();

当我构建应用程序时,我收到上述两行代码的错误:

  

当前上下文中不存在名称“GetApplication”

我能帮助您使用此代码吗?

修改

这是我的代码:

HelloApplication state = ((HelloApplication) this.ApplicationContext);
state.SetGlobalVariable(10);
int globalVariable = state.GetGlobalVariable ();

Toast.MakeText (this, "Global variable " + globalVariable, ToastLength.Short).Show ();

这是我得到的错误:

  

UNHANDLED EXCEPTION:System.InvalidCastException:无法从源类型转换为目标类型。

我可以帮忙解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

查看代码,您可以将变量设为公共静态。

public class HelloApplication : Application 
{
    public static int GlobalVariable = 1;
}

用法:

HelloApplication.GlobalVariable = 10;

答案 1 :(得分:1)

变化:

((HelloApplication)GetApplication())

((HelloApplication)GetApplicationContext())