6

私はどこでも答えを探しましたが、他の誰かがその方法を使用しているのを見るたびに:

getFilesDir();

しかし、特にその方法を何らかの方法で使用しようとすると、次のようになります。

File myFile = new File (getFilesDir();, filename );

Eclipseは、「ContextWrapperから非静的メソッドgetFilesDirへの静的参照を作成できません」と言っています

アプリケーション用のファイルを書き込むための内部ディレクトリを取得するために使用しようとしています。

ありがとう!

4

2 に答える 2

5

これは、静的メソッドではクラスのオブジェクトを取得しておらず、getFilesDir は静的メソッドではないため、Context クラスのオブジェクトを介してのみアクセスできるためです。

したがって、オブジェクトへの参照をクラスの静的変数に格納し、それを静的メソッドで使用することができます。

例えば:

static YourContextClass obj;

static void method(){
   File myFile = new File (obj.getFilesDir(), filename );
}

また、オブジェクトへの参照を onCreateMethod() に保存する必要があります

 obj = this;

これを達成するための最良の方法は、

 static void method(YourContextClass obj){
      File myFile = new File (obj.getFilesDir(), filename );
 }
于 2013-04-03T10:21:26.237 に答える