所以,我正在嘗試將文本寫入 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
提交
取消