Viewへのサブクラス内のgetFilesDir()

extends View を使用する.classで
getFilesDir()メソッドを使用できますか?

public void save(){
    try {
        File myDir = new File(getFilesDir().getAbsolutePath());
        FileWriter fw = new FileWriter(myDir + "/Test.txt");
        fw.write(Integer.toString(score));
        fw.close();

    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

getFilesDir()メソッドは、利用可能なクイックフィックスでエラーメッセージを表示します。メソッド
getFilesDir()を作成します。これは、Viewをextendsにするクラスに含まれているため、このメソッドをActivityクラスに入れ、staticを使用してViewクラスのメソッドを使用することで修正できます。これはエーテルを働かせず、プログラムがクラッシュしてスコアが保存されません。

ベストアンサー

ContextをViewコンストラクタに渡すだけで、sdcardの位置を取得できます。

[編集]
つまり、ビューを拡張するこのクラスは、コンテキストにネイティブにアクセスできる場所には存在しない可能性があるため、アクティビティでインスタンス化するときにコンストラクタFROMにそのオブジェクトを渡す必要がありますそれへの参照)。

このようなもの…

class Foo extends View{
   public foo (Context c){
      c.getFilesDir();//or any method that belongs to context
   }
}

あなたのアクティビティで

class Main extends Activity{
   @override
   public void onCreate(){
       super.onCreate();


       Foo foo = new Foo(this); //this is a reference to the activity AND is also the context;
   }
}

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です