我刚创建了一个使用大量片段的应用程序。我创建了包含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。
也许任何人都可以解释为什么会发生这种情况
答案 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()
是正确的方法