2012-01-14 197 views
0

我想創建自己的類從文件讀取行,但似乎是問題。創建類讀取文件

從我已經能夠確定標準(Java)的方式不適用於Android。我需要getResources()等。

public myInput(Context context) throws FileNotFoundException{ 
    super(); 
    br = new BufferedReader(new InputStreamReader(context.getResources(). 
      openRawResource(R.raw.file))); 
} 

這就是構造函數。我試圖像這樣創建它。

public void choosePassword(Context context){ 
    try{ 
     myInput fromFile = new myInput(context); 
    } catch(Exception e){ 

    } 
} 

metod choosePassoword()被稱爲形式我的活動類,說實話,不知道他想要的上下文。我想給方法choosePassword()從他應該選擇密碼的文件,這就是我想要的...有人可以幫我做到這一點嗎?

回答

2

ActivityContext的間接子類,因此您可以在從Activity調用它時簡單地使用choosePassword(this)

0

...說實話不知道他想要什麼語境

確定。這是在Android中理解的重要內容。上下文是幾乎所有應用程序交互或甚至具有身份的基礎。一個Context基本上標識了一個Component的運行指令的起源(這是一個過分簡化)。對於要運行的Android組件,它必須具有運行的上下文。幸運的是,在大多數情況下,上下文都是爲您提供的。有兩種特定類型的上下文,您幾乎總是可以訪問:

  1. 每個活動都是上下文。這是受生命週期方法調用。

  2. 每個應用程序都是一個上下文。這個在生命週期之外,並且在應用程序的任何其他組件被創建之前被初始化。

無論您需要上下文,都可以使用這兩種方法。如果您需要應用程序上下文,則可以使用getApplication()方法從幾乎任何組件獲取它。

爲您的目的

這使得你的電話很容易。如果所有電話均來自您的活動,那麼您可以提供this作爲您的參數。更好的是,如果方法本身是你Activity的一部分,你不一定需要將Context作爲參數傳遞,只需使用this即可。

重要提示

您將學習,有時,它是比較容易得到一個上下文或另一個。您還將瞭解到,有時候可能會更困難,但使用一個上下文比另一個更安全。爲此,我建議閱讀活動的生命週期。不使用正確的可能導致內存泄漏和不安全的執行。一般來說,如果您只需要在生命週期中存活的數據或執行的上下文,則可以使用「活動」。如果您需要在生命週期外發生數據或執行的上下文,請使用應用程序。不管怎麼說,並不意味着要寫一本書。有關於上下文的大量信息,如何使用它們以及使用哪些信息。當然要閱讀它。它會讓你的生活變得更容易。

希望這有助於

FuzzicalLogic

+0

感謝那些幫助。我一直在努力閱讀它。但是你的速成課程是現場的。反正..謝謝磨坊。 – 2012-01-16 15:49:16

+0

沒問題。這是這個網站的一部分。 – 2012-01-16 17:05:06