我试图将一个字符串从一个单独的静态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()不起作用,我收到错误"无法解析符号"
答案 0 :(得分:5)
您可以尝试将上下文作为参数传递。由于这是一个片段,我建议你检查空值!
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<TextView
android:text="Suggest improvements or changes, or report bugs."
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
// remove margin top
android:id="@+id/textView5"
android:textColor="@color/Black"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp" />
........
.......
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
// remove margin top, can be added margin as needed
<EditText
android:layout_height="wrap_content"
android:inputType="textEmailAddress"
android:ems="10"
android:id="@+id/email_feedback_text"
android:layout_marginLeft="125dp"
android:layout_width="250dp"
android:layout_alignParentBottom="false"
android:layout_marginRight="5dp" />
......
..........
</RelativeLayout>
注:的
我只是一直在使用Fragments,我绝对讨厌他们的生命周期。我不完全确定为什么你需要一个涉及上下文的静态方法,但我建议不要这样做。而是使用Command pattern或其他东西。通常情况下,我会发现,直到片段已经安定下来&#34; - 然后上下文变得可用。
答案 1 :(得分:0)
如果您正在使用此方法(或从中调用)片段,则片段可以使用getActivity();
访问活动。将其作为参数传递。
但是如果您实际上正在使用Fragment中的方法(显示Toast消息),那么您可以尝试使用getActivity()
而不是getContext().