如何将值从全局变量应用程序传递到片段?我收到了null值错误消息。
引起:android.view.WindowManager $ BadTokenException:无法添加窗口 - 令牌null不适用于应用程序
全局变量
public class Gl extends Application {
private String token = "bla bla";
public void setToken(String token){
this.token = token;
}
public String getToken() {
return token;
}
}
片段
public class MyFragment extends Fragment {
private String token;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
token = ((Gl) getActivity().getApplicationContext()).getToken();
}
/* .... */
}
答案 0 :(得分:0)
查看您的AndroidManifest.xml
文件,了解Gl
班级
<application
android:name=".Gl"
其他一切看起来都不错......
答案 1 :(得分:0)
我认为默认情况下你的意图有问题。您应该使用不同的方法,例如将变量放在res / string文件中并通过
获取getString(R.string.you_string_id)
但是如果你想将一些参数传递给片段,你就可以按照here
所描述的那样去做答案 2 :(得分:0)
首先,您必须将G1
课程添加到AndroidManifest.xml
<application android:name=".G1"
...
/>
我建议你使用Dagger2,将传递值转换为片段。
答案 3 :(得分:0)
将G1类的标记指定为公共静态