我正在尝试创建一个全局变量,可以从任何位置访问它,包括Activity,Fragment和其他自定义类。
public class Global extends Application {
private static Global sInstance;
private String mSharedInfoFileName; //can be any custom object
public static Global getInstance() { return sInstance; }
@Override
public void onCreate() {
super.onCreate();
sInstance = this;
initialize();
}
private void initialize() { mSharedInfoFileName = "globalInfo"; }
public String getFileName() { return mSharedInfoFileName; }
private Global() { }
}
并尝试像这样使用它
public class MyFragment extends android.support.v4.app.Fragment {
String s = Global.getInstance().getFileName();
}
即使在类范围内声明它仍然给出相同的错误
private static Global mGlobal = Global.getInstance();
让我尝试发票...... .Global.getFileName()'在null对象引用上。我错过了什么?
谢谢
答案 0 :(得分:2)
将此方法更改为静态:
public static String getFileName() {
return mSharedInfoFileName;
}
并在下面调用它:
Global.getFileName();
mSharedInfoFileName变量也必须是静态的:
private static String mSharedInfoFileName;