2011-09-10 12 views
0

は、次の...Androidのコンテキストは、私が何をしようとしている

FileInputStream fIn; 
try { 
fIn = openFileInput("samplefile.txt"); 
InputStreamReader isr = new InputStreamReader(fIn); 
BufferedReader br = new BufferedReader(isr); 
isTrue = Boolean.parseBoolean(br.readLine()); 
Log.i("IN", "isTrue = " + isTrue); 
} 

である。しかし、これは唯一のAndroid内Activityクラスを拡張するクラスで動作するように起こっています。

ファイルから現在のゲームの設定を読み書きする「設定」クラスがありますが、このファイルには本当に操作したくないデータがたくさんあります。

私は当初BufferedReader & BufferedWriterを使用していたが、私は誰もがちょうどファイルを編集することができることを意味しているプラ​​イベートにデータを設定することはできません。 OutputStreamWriterで、私が、このようなopenFileInput

答えて

3

などの方法を使用することができるように、少なくとも

がどのように私は、コンテキストへのアクセス権を持っている(完全に静的メソッドを持っている)私の切り出し、「設定」クラスを得るのですか少しより安全ですContext引数を持つSettingsクラスのコンストラクタを作成します。次に、そのクラスからオブジェクトをインスタンス化するときに、アプリケーションコンテキストを渡すだけです。

コンストラクタ:あなたの活動のクラスで

public Settings(Context cont) 
{ 
    //do something with the context, e.g assign it to some private variable of type Context 

} 

Settings settings = new Settings(MyActivity.this); 
+1

彼の 'Settings'クラスには静的メソッドしかありません。 – Ronnie

+0

は機能しません... –

1

代わりにコンテキストを渡す、Fileクラスを使用することがより適切であろう。可能であれば、他のクラスにコンテキストを渡さないようにする必要があります。

もう1つの方法は、コンテキストをメソッドに渡すことです。

boolean isTrue = Settings.readBoolean(MyClass.this); 
関連する問題