我正在尝试将一个字符串从一个单独的静态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().