我正在尝试从静态方法调用以下函数。
File directory = getDir(folderName, Context.MODE_PRIVATE);
关于如何修复Cannot make a static reference to the non-static method getDir(String, int) from the type ContextWrapper
的任何建议
在不了解您的情况或方法的情况下,我会说您需要将Context
传递到静态方法中并在该对象上调用getDir()
。
只需像这样使您的getFiles func公共静态
:public static ArrayList<String> GetFiles(String DirectoryPath) {
ArrayList<String> MyFiles = new ArrayList<String>();
File f = new File(DirectoryPath);
f.mkdirs();
File[] files = f.listFiles();
if (files.length == 0)
return null;
else {
for (int i=0; i<files.length; i++)
MyFiles.add(files[i].getName());
}
return MyFiles;
}
您将能够从其他活动访问它。
do
File fileName = New File();
File directory = fileName.getDir(folderName, Context.MODE_PRIVATE);
也在这里寻找更好的解释你做错了什么。
这是我们在
静态方法中使用"getConTentResolver()"时出现的错误喜欢:
public static void Mthd()
{
Cursor cursor =getContentResolver().query(uri, null, null, null, null);
//ur next code
}
因此,在这种情况下,它会给出一个错误,因此我们必须使函数非静态。