我正在尝试创建自己的类来从文件中读取行,但这似乎是问题所在。
从我能够确定的标准(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()提供他应该选择密码的文件,这就是我想要的......有人可以帮我做那个吗?
答案 0 :(得分:2)
Activity
是Context
的间接子类,因此您可以在choosePassword(this)
中使用Activity
时使用{{1}}。
答案 1 :(得分:0)
...说实话,不知道他想要什么语境
行。这是Android中需要了解的重要事项。上下文是几乎所有应用程序交互甚至拥有身份的基础。 Context主要识别Component的运行指令的起源(这是过度简化)。要运行Android组件,它必须有一个要运行的Context。幸运的是,在大多数情况下,Context都是为您提供的。您几乎总能访问两种特定类型的上下文:
每个活动都是一个上下文。这个是生命周期方法调用。
每个应用程序都是一个上下文。这个在Lifecycle之外,并且在应用程序的任何其他组件被创建之前被初始化。
这些都可以在您需要上下文时使用。如果您需要应用程序上下文,则可以使用getApplication()
方法从几乎任何组件中获取它。
出于您的目的
这使您的通话非常简单。如果所有呼叫都来自您的活动,那么您可以提供this
作为您的参数。更好的是,如果方法本身是您的Activity的一部分,您不必将Context作为参数传递,而只需使用this
。
重要提示
您将了解到,有时候,获得一个或另一个上下文会更容易。您还将了解到,有时虽然可能更困难,但使用一个上下文比另一个上下文更安全。为此,我建议您阅读活动的生命周期。不使用正确的可能会导致内存泄漏和不安全的执行。通常,如果您需要仅在生命周期中存活的数据或执行的上下文,则可以使用“活动”。如果您需要在生命周期之外发生的数据或执行的上下文,请使用应用程序。
无论如何,并不是故意写一本书。有关上下文的丰富信息,如何使用它们以及使用哪些信息。当然要读一读。它会让你的生活变得更轻松
。希望这有帮助,
FuzzicalLogic