访问片段中的全局变量

时间:2018-04-27 10:09:18

标签: android android-fragments

我刚创建了一个使用大量片段的应用程序。我创建了包含10多个片段的Viewpager。现在我想尝试的是从片段中设置变量,以便可以在另一个片段上访问它。

到目前为止我尝试了什么。我创建全局变量来存储值

public class DataSite extends Application {

private String someVar;

public String getSomeVar(){
    return someVar;
}

public void setSomeVar(String someVar){
    this.someVar = someVar;
}

}

在片段A中,我设置了如下的值

((DataSite) getActivity().getApplicationContext()).setSomeVar("Tes");

从其他片段我试图得到像这样的值

((DataSite)getActivity().getApplication()).getSomeVar();

但是当我单击片段A中的按钮时,应用程序试图将var设置为全局类....应用程序突然崩溃,Android Studio中没有显示错误logcat。

也许任何人都可以解释为什么会发生这种情况

2 个答案:

答案 0 :(得分:2)

您需要在清单中添加自定义应用程序类

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.some.somemore">

    <application
        android:name=".DataSite"
      ....> </application>

答案 1 :(得分:1)

((DataSite)getActivity().getApplication()).getSomeVar(); //这是正确的

((DataSite) getActivity().getApplicationContext()).setSomeVar("Tes"); //这是错误的

.getApplication()是正确的方法