【问题标题】:Create class for reading files创建用于读取文件的类
【发布时间】:2012-01-14 22:43:17
【问题描述】:

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

据我所知,标准 (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){

    }
}

方法choosePassoword() 是从我的Activity 类中调用的,老实说不知道他想要什么上下文。我想为方法 choosePassword() 提供他应该从中选择密码的文件,这就是我想要的...有人可以帮我这样做吗?

【问题讨论】:

    标签: android file class readline android-context


    【解决方案1】:

    ActivityContext 的间接子类,因此您可以在从 Activity 调用它时简单地使用 choosePassword(this)

    【讨论】:

      【解决方案2】:

      ...说实话不知道他想要什么 Context

      好的。这是在 Android 中理解的重要内容。上下文是几乎所有应用程序交互甚至拥有身份的基础。上下文本质上标识了组件的运行指令起源于何处(这是过于简单化了)。要运行一个 Android 组件,它必须有一个运行的上下文。幸运的是,在大多数情况下,上下文是为您提供的。您几乎总是可以访问两种特定类型的上下文:

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

      2. 每个应用程序都是一个上下文。这个在生命周期之外,甚至在应用程序的任何其他组件创建之前就被初始化。

      这两种方法都可以在您可能需要上下文的任何地方使用。如果您需要应用程序上下文,您几乎可以使用getApplication() 方法从任何组件中获取它。

      为了您的目的

      这使您的通话变得非常容易。如果所有调用都来自您的 Activity,那么您可以提供 this 作为参数。更好的是,如果方法本身是 Activity 的一部分,则不必将 Context 作为参数传递,只需使用 this

      重要提示

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

      总之,不是想写一本书。有大量关于上下文、如何使用它们以及使用哪个的信息。当然读它。它会让你的生活变得轻松

      希望这会有所帮助,

      模糊逻辑

      【讨论】:

      • 感谢您的帮助。我一直在努力阅读它。但是你的速成课程是正确的。无论如何..谢谢磨坊。
      • 没问题。这就是本网站的一部分内容。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-03
      • 2016-09-20
      • 1970-01-01
      • 2021-01-11
      相关资源
      最近更新 更多