所以,我正在尝试将文本写入 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。我该如何解决这个问题?任何建议将不胜感激。
3 回答

杨__羊羊
TA贡献1943条经验 获得超7个赞
不要将“this”作为参数传递,而是尝试调用 getApplicationContext(),或者如果您在片段中,只需调用 getActivity()。

心有法竹
TA贡献1866条经验 获得超5个赞
经常做的是在类中声明一个 Context myContext 变量,然后 onCreate,你用 myContext = this 填充它;然后,在任何侦听器或异步任务中,您可以使用 myContext.getExternalFilesDir(null)

jeck猫
TA贡献1909条经验 获得超7个赞
File storageDir = getActivity().getExternalFilesDir(Environment.DIRECTORY_PICTURES);
添加回答
举报
0/150
提交
取消