Java 在类中使用全局变量

Java 在类中使用全局变量,java,android,global-variables,Java,Android,Global Variables,我正在使用android studio进行项目api 21的最低要求, 我有一个带有文本字段和按钮的活动,当单击时,我希望在应用程序的生命周期内存储文本字段的文本,为此我使用了一个全局变量。 我有一个扩展应用程序的类变量: package com.example.user.variableglobale; import android.app.Application; public class Variable extends Application { private String c

我正在使用android studio进行项目api 21的最低要求, 我有一个带有文本字段和按钮的活动,当单击时,我希望在应用程序的生命周期内存储文本字段的文本,为此我使用了一个全局变量。
我有一个扩展应用程序的类变量:

package com.example.user.variableglobale;

import android.app.Application;


public class Variable extends Application {

private String chiffre;

public String getChiffre() {
    return this.chiffre;
}

public void setChiffre(String chiffre) {
    this.chiffre = chiffre;
}
在我的主页内:

   final Variable VG = (Variable) getApplication();
    final TestVar tV = new TestVar();

    btnOk.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            tV.testVar(MainActivity.this);
            VG.setChiffre(String.valueOf(txt.getText()));
        }
    });
下面是通过按钮调用的java类:

    public class TestVar {

    public void testVar(Context context) {
        Variable VG = (Variable) context.getApplicationContext();

        String temp = VG.getChiffre();

        Toast.makeText(context.getApplicationContext(), "test java VG " + temp, Toast.LENGTH_SHORT).show();
    }
}
有人能解释一下如何在java类中使用全局变量吗?
当我点击按钮时,会出现一个toast,其中“temp”的值为“null”(似乎未初始化)。
在我的例子中,我尝试了“上下文”,但没有成功。

好的,最后它成功了,
在onclickListener中,我必须交换变量的声明和类的调用。。。一切正常

我认为存储变量的更好方法是将其存储在共享首选项中。您可以在任何活动中访问它,即使应用程序关闭,它也会持续存在。 您可以使用它,而不需要像这样为变量设置

主要内容:

testVar方法如下所示

public void testVar(Context context) {

    String vg = getActivity().getPreferences(Context.MODE_PRIVATE).getString(CHIFFRE_KEY);

    Toast.makeText(context.getApplicationContext(), "test java VG " + vg, Toast.LENGTH_SHORT).show();
}

您可以阅读有关共享首选项的更多信息

首先要知道的是:Java没有全局变量。定义“应用程序的生命周期”-Android可以随时停止该应用程序。尝试更改顺序VG.setChiffre(String.valueOf(txt.getText());testVar(MainActivity.this);
public void testVar(Context context) {

    String vg = getActivity().getPreferences(Context.MODE_PRIVATE).getString(CHIFFRE_KEY);

    Toast.makeText(context.getApplicationContext(), "test java VG " + vg, Toast.LENGTH_SHORT).show();
}