2011-09-10 29 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類。儘可能避免將上下文傳遞給其他類。

File file = new File("sample.txt"); 
    InputStream is = new FileInputStream(file); 

另一種方法是將上下文傳遞給方法。

boolean isTrue = Settings.readBoolean(MyClass.this);