我试图从静态方法调用以下函数。
File directory = getDir(folderName, Context.MODE_PRIVATE);
有关如何修复Cannot make a static reference to the non-static method getDir(String, int) from the type ContextWrapper
答案 0 :(得分:1)
在不了解您的情况或方法的情况下,我会说您需要将Context
传递给静态方法并在该对象上调用getDir()
。
答案 1 :(得分:1)
只需将 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;
}
您将能够从其他活动访问它。
答案 2 :(得分:-2)
做
File fileName = New File();
File directory = fileName.getDir(folderName, Context.MODE_PRIVATE);
另请查看here以更好地解释您的错误。
答案 3 :(得分:-2)
当我们在静态方法中使用“getConTentResolver()”时出现错误 像:
public static void Mthd()
{
Cursor cursor =getContentResolver().query(uri, null, null, null, null);
//ur next code
}
因此,在这种情况下它会产生错误,因此我们必须使该函数成为非静态函数。