如何在静态方法中获取Activity()



我想从另一个类调用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问题。

最新更新