Android 将上下文从主活动传递到另一个类

Android 将上下文从主活动传递到另一个类,android,android-context,Android,Android Context,这可能是错误的做法,如果是这样,请告诉我: 我试图在另一个类中使用getFileStreamPath(据我所知,它是从上下文派生的)来将一些代码与主活动类分离。为此,我将主活动的上下文传递给另一个类,并使用该上下文调用其方法 在我的主要活动课上: LocalStorage lc = new LocalStorage(this); 然后,在另一个类中: public class LocalStorage { Context ctx; public LocalStorage (C

这可能是错误的做法,如果是这样,请告诉我:

我试图在另一个类中使用getFileStreamPath(据我所知,它是从上下文派生的)来将一些代码与主活动类分离。为此,我将主活动的上下文传递给另一个类,并使用该上下文调用其方法

在我的主要活动课上:

LocalStorage lc = new LocalStorage(this);
然后,在另一个类中:

public class LocalStorage {
    Context ctx;

    public LocalStorage (Context c) {
        c = ctx;
        File lfile = ctx.getFileStreamPath("Activity.log");

    ....

但很明显,我遗漏了一些东西,因为在LocalStorage类中传递的上下文上运行getFileStreamPath会导致NullPointerException。

很难知道代码中的错误是什么,我们缺少信息。但看起来你在以正确的方式传递上下文。所以问题就解决了。

很难知道代码中的错误是什么,我们错过了信息。但看起来你在以正确的方式传递上下文。所以问题就解决了。

你的变量倒过来了

c = ctx;
应该是

ctx = c;

您正在将未初始化的
上下文
ctx
分配给传入的
上下文
c
,因此它将始终为空。

您的变量是反向的

c = ctx;
应该是

ctx = c;

您正在将未初始化的
上下文
ctx
分配给传入的
上下文
c
,因此它将始终为空。

您没有输入错误吗

public LocalStorage (Context c) {
    ctx = c;
    ...

你不是打错了吗

public LocalStorage (Context c) {
    ctx = c;
    ...
c=ctx

Context ctx;

public LocalStorage (Context c) {
    c = ctx;
c=ctx

Context ctx;

public LocalStorage (Context c) {
    c = ctx;

哦,我的天啊……真让人难堪。很明显,在看自己的代码时可能会失明。是的,是托比:-)是的,有可能。这对我来说总是发生^^^哦,我的天哪……令人尴尬。很明显,在看自己的代码时可能会失明。是的,是托比:-)是的,有可能。对我来说,这种事经常发生^^