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クラスのメソッドを使用することで修正できます。これはエーテルを働かせず、プログラムがクラッシュしてスコアが保存されません。

0
追加された 編集された
ビュー: 1

2 答え

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;
   }
}
4
追加された
彼が言っていることは、誰かがあなたの質問に答えて答えがあなたのために働いた後、答えの隣にある緑のチェックをクリックするということです。あなたのプロフィールに入り、あなたのすべての質問に対して同じことをしてください。
追加された 著者 ShadowGod,
どういう意味ですか?
追加された 著者 Daniel,
申し訳ありませんが、私は騒ぎです:(
追加された 著者 Daniel,
そして、私がmyDir = new File(context.getFilesDir()。getAbsolutePath())を使っても、答えは何の助けもしません。コンストラクタでは動作しません
追加された 著者 Daniel,

getContextメソッドを使用する

 getContext().getFilesDir();
3
追加された
それはeatherを動かさない
追加された 著者 Daniel,
あなたはちょうどファイルファイル=新しいファイル(getContext()。getFilesDir()、 "Test.txt")を使用する必要があります。バージョンのファイルクラスを作成し、単純に新しいFileWriter(ファイル)を使用します。また、あなたのファイルライターをflush()してください。
追加された 著者 caguilar187,