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

时间:2014-10-22 23:05:19

标签: java android-activity fragment

我想从另一个类调用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());

}
}

1 个答案:

答案 0 :(得分:1)

您无法使用getActivity(),因为它是一种静态方法,因此无法访问活动/片段的方法。您可能希望将活动作为参数传递(因为必须从某些非静态方法调用method1)。

但是在您的情况下,您不需要特定的活动 - 只需要上下文,任何上下文 - 因此应用程序上下文可能就足够了。有关详细信息,请参阅This SO question