我想从另一个类调用method1,但是如何在静态方法中使用getActivity()? 我只找到了FragmentActivity或其他类型的示例。我很抱歉,如果这个问题已经在其他地方得到了解答,但我找不到任何我可以在我的代码中实现的内容。 任何帮助表示赞赏。
public class Tab1 extends Fragment {
public static String readFromFileKurs(Context ctx) {
ret = "";
try {
InputStream inputStream = ctx.openFileInput("configkurs.txt");
if ( inputStream != null ) {
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String receiveString = "";
StringBuilder stringBuilder = new StringBuilder();
while ( (receiveString = bufferedReader.readLine()) != null ) {
stringBuilder.append(receiveString);
}
inputStream.close();
ret = stringBuilder.toString();
}
}
catch (FileNotFoundException e) {
Log.e("login activity", "File not found: " + e.toString());
} catch (IOException e) {
Log.e("login activity", "Can not read file: " + e.toString());
}
return ret;
}
public static void method1(){
temp = readFromFile(getActivity());
}
}
答案 0 :(得分:1)
您无法使用getActivity()
,因为它是一种静态方法,因此无法访问活动/片段的方法。您可能希望将活动作为参数传递(因为必须从某些非静态方法调用method1
)。
但是在您的情况下,您不需要特定的活动 - 只需要上下文,任何上下文 - 因此应用程序上下文可能就足够了。有关详细信息,请参阅This SO question。