-1

我正在尝试将 JSON 提取的结果保存到本地文件。当我尝试使用 openFileOutput 时,我得到error: cannot find symbol method openFileOutput(String,int). 搜索说它需要上下文,但我已经尝试过我拥有的所有其他类,它要么保持相同的错误,要么得到Non-static method 'openFileOutput(java.lang.String,Int)' cannot be referenced from a static context.

我的所有类都扩展了 AppCompatActivity 或 ArrayAdapter,除了我在其中使用此代码的类,它扩展了 AsyncTask。

//SAVE JSON TO FILE
private void writeToFile(String data) {
    try {
        OutputStreamWriter outputStreamWriter = OutputStreamWriter(openFileOutput("BonusData.xml", 0));
        outputStreamWriter.write(data);
        outputStreamWriter.close();
    }
    catch (IOException e) {
        Log.e("Exception", "File write failed: " + e.toString());
    }
}
4

1 回答 1

0

该方法openFileOutput属于 class Context,因此您不能直接从ArrayAdapterclass 内部使用它。

您有多种选择:

  1. Context在您的方法中将引用作为参数传递writeToFile并使用context.openFileOutput(...)

  2. 或者使用getContext()类的方法ArrayAdapter并使用getContext().openFileOutput(...)

  3. 如果您ArrayAdapter是活动的内部类,请不要使其(类)静态,然后您可以访问所有方法,包括openFileOutput()直接从ArrayAdapter.

于 2019-01-20T04:55:24.580 回答