簡體   English   中英

如何在靜態方法中使用getActivity()?

[英]How to getActivity() in a static method?

我想從另一個類調用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問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM