java安卓从静态方法生成Toast
我试图将一个字符串从一个单独的静态java类传递到Blankfragment中的一个方法。爪哇
这是blankFragment中的方法。java,问题是它无法访问非静态的getContext()
public static void ShowMessage(String message){
Toast.makeText(getContext() ,message , Toast.LENGTH_LONG).show();
}
以及separatestaticjava类中的方法调用:
BlankFragment.ShowMessage(new String(body));
有没有办法从外部检索上下文并将其作为参数传递?getContext()不工作,出现错误“无法解析符号”
# 1 楼答案
如果您正在使用此方法(或从片段调用它),则片段可以通过
getActivity();
访问活动。将其作为参数传递但是如果您实际上在片段(显示Toast消息)中使用该方法,那么您可以尝试使用
getActivity()
而不是getContext().
# 2 楼答案
您可以尝试将上下文作为参数传递。由于这是一个片段,我建议您检查空值
注意:
我一直在处理片段,我非常讨厌它们的生命周期。我不完全清楚为什么需要一个涉及上下文的静态方法,但我建议不要这样做。而是使用Command pattern或其他东西。通常我会发现,直到片段“稳定下来”,上下文才变得可用