在类中使用全局变量



我正在使用 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 类中使用全局变量的方法?
当我单击该按钮时,会出现一个带有"temp"的"null"值的吐司(似乎未初始化(。
在我的示例中,我尝试使用"上下文",但无济于事。

好的,终于可以工作了, 在我的 onclickListener 中,我必须交换变量的声明和我的类的调用......一切都还行

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

主要:

static final String CHIFFRE_KEY = "chiffre_key";
final TestVar tV = new TestVar();
btnOk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString(CHIFFRE_KEY, String.valueOf(txt.getText()));
editor.commit();
tV.testVar(MainActivity.this);
}
});

和 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();
}

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

相关内容

  • 没有找到相关文章

最新更新