1

这可能是错误的解决方法,所以请告诉我是否是这种情况:

我正在尝试在另一个类中使用 getFileStreamPath (据我所知,它是从 Context 派生的)将一些代码与主活动类分开。我通过将主要活动的上下文传递给另一个类,并使用它来调用它的方法来做到这一点。

在我的主要活动课上:

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。

4

4 回答 4

10

你有你的变量倒退。

c = ctx;

应该

ctx = c;

您将 uninitialized 分配给Context ctx传入的Context c,因此它将始终为空。

于 2012-08-27T14:00:06.980 回答
1

你不是打错字了吗?

public LocalStorage (Context c) {
    ctx = c;
    ...
于 2012-08-27T14:00:41.607 回答
1

c = ctx ???

Context ctx;

public LocalStorage (Context c) {
    c = ctx;
于 2012-08-27T14:02:20.613 回答
0

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

于 2012-08-27T13:59:20.737 回答