我想从另一个类调用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());
}
}
不能使用getActivity()
,因为它是一个静态方法,因此不能访问活动/片段的方法。您可能希望将活动作为参数传递(因为必须从某个非静态方法调用method1
)。
然而,在您的情况下,您不需要特定的"活动"——只需要一个上下文,任何上下文——因此应用程序上下文可能就足够了。有关更多信息,请参阅此SO问题。