如何将值从全局变量应用程序传递到片段?

时间:2018-01-21 18:49:54

标签: java android android-fragments

如何将值从全局变量应用程序传递到片段?我收到了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();
    }

  /* .... */

}

4 个答案:

答案 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类的标记指定为公共静态