在 Android Studio 中找不到 getExternalFilesDir() 函数的上下文

所以,我正在尝试将文本写入 Android Studio 中的文件。我有以下代码:


public void sampleFunction() {

    File file = new File(getExternalFilesDir(null), "sample-file.txt");

}

问题是方法 getExternalFilesDir(null) 无法解决。在做了一些研究之后,我注意到我需要提供 Context 类。如:


public void sampleFunction(Context c) {

    File file = new File(c.getExternalFilesDir(null), "equation_history.xml");

}

当我调用 sampleFunction 时,我只需传入当前上下文:


sampleFunction(this);


这通常会起作用,但是,我需要在按钮的 setOnClickListener 函数中调用此函数。例如:


Button b_go = findViewById(R.id.b_go);

b_go.setOnClickListener(new View.OnClickListener() {

    @Override

    public void onClick(View view) {

        Functions.sampleFunction(this);

    }

});

所以返回值this是android.view.View.OnClickListener而不是android.content.Context。


我该如何解决这个问题?任何建议将不胜感激。


喵喵时光机
浏览 760回答 3
3回答

杨__羊羊

不要将“this”作为参数传递,而是尝试调用 getApplicationContext(),或者如果您在片段中,只需调用 getActivity()。

心有法竹

经常做的是在类中声明一个 Context myContext 变量,然后 onCreate,你用 myContext = this 填充它;然后,在任何侦听器或异步任务中,您可以使用 myContext.getExternalFilesDir(null)

jeck猫

File storageDir = getActivity().getExternalFilesDir(Environment.DIRECTORY_PICTURES);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java