安卓 - 从静态方法制作吐司



我正在尝试将一个字符串从一个单独的静态java类传递给我的Blankfragment中的方法.java

这是 blankFragment.java 中的方法,问题是它无法访问非静态的 getContext()。

public static void ShowMessage(String message){
    Toast.makeText(getContext() ,message , Toast.LENGTH_LONG).show();
}

方法调用在单独的静态 java 类中:

BlankFragment.ShowMessage(new String(body));

有没有办法从外部检索上下文并将其作为参数传递? getContext() 不起作用,我收到错误"无法解析符号"

您可以尝试将上下文作为参数传递。由于这是一个片段,我建议您检查空值!

public static void ShowMessage(Context context, String message){
    if (context == null) return;
    Toast.makeText(context, message, Toast.LENGTH_LONG).show();
}
BlankFragment.ShowMessage(getContext(), new String(body));

注意:

刚刚一直在使用碎片,我非常讨厌它们的生命周期。我不完全确定为什么你需要一个涉及上下文的静态方法,但我建议不要这样做。而是使用命令模式或其他方式。通常我发现,直到片段"稳定下来" - 然后上下文变得可用。

如果您使用此方法(或从)片段调用它,则片段可以访问具有getActivity();的活动。将其作为参数传递。

但是,如果您实际使用片段中的方法(显示 Toast 消息),则可以尝试使用 getActivity() 而不是getContext().

最新更新