创建用于读取文件的类

时间:2012-01-14 22:43:18

标签: android file class readline android-context

我正在尝试创建自己的类来从文件中读取行,但这似乎是问题所在。

从我能够确定的标准(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()正在调用我的Activity类,说实话,不知道他想要什么用于Context。我想给方法choosePassword()提供他应该选择密码的文件,这就是我想要的......有人可以帮我做那个吗?

2 个答案:

答案 0 :(得分:2)

ActivityContext的间接子类,因此您可以在choosePassword(this)中使用Activity时使用{{1}}。

答案 1 :(得分:0)

  

...说实话,不知道他想要什么语境

行。这是Android中需要了解的重要事项。上下文是几乎所有应用程序交互甚至拥有身份的基础。 Context主要识别Component的运行指令的起源(这是过度简化)。要运行Android组件,它必须有一个要运行的Context。幸运的是,在大多数情况下,Context都是为您提供的。您几乎总能访问两种特定类型的上下文:

  1. 每个活动都是一个上下文。这个是生命周期方法调用。

  2. 每个应用程序都是一个上下文。这个在Lifecycle之外,并且在应用程序的任何其他组件被创建之前被初始化。

  3. 这些都可以在您需要上下文时使用。如果您需要应用程序上下文,则可以使用getApplication()方法从几乎任何组件中获取它。

    出于您的目的

    这使您的通话非常简单。如果所有呼叫都来自您的活动,那么您可以提供this作为您的参数。更好的是,如果方法本身是您的Activity的一部分,您不必将Context作为参数传递,而只需使用this

    重要提示

    您将了解到,有时候,获得一个或另一个上下文会更容易。您还将了解到,有时虽然可能更困难,但使用一个上下文比另一个上下文更安全。为此,我建议您阅读活动的生命周期。不使用正确的可能会导致内存泄漏和不安全的执行。通常,如果您需要仅在生命周期中存活的数据或执行的上下文,则可以使用“活动”。如果您需要在生命周期之外发生的数据或执行的上下文,请使用应用程序。

    无论如何,并不是故意写一本书。有关上下文的丰富信息,如何使用它们以及使用哪些信息。当然要读一读。它会让你的生活变得更轻松

    希望这有帮助,

    FuzzicalLogic