Android 将上下文从主活动传递到另一个类
这可能是错误的做法,如果是这样,请告诉我: 我试图在另一个类中使用getFileStreamPath(据我所知,它是从上下文派生的)来将一些代码与主活动类分离。为此,我将主活动的上下文传递给另一个类,并使用该上下文调用其方法 在我的主要活动课上:Android 将上下文从主活动传递到另一个类,android,android-context,Android,Android Context,这可能是错误的做法,如果是这样,请告诉我: 我试图在另一个类中使用getFileStreamPath(据我所知,它是从上下文派生的)来将一些代码与主活动类分离。为此,我将主活动的上下文传递给另一个类,并使用该上下文调用其方法 在我的主要活动课上: LocalStorage lc = new LocalStorage(this); 然后,在另一个类中: public class LocalStorage { Context ctx; public LocalStorage (C
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;
哦,我的天啊……真让人难堪。很明显,在看自己的代码时可能会失明。是的,是托比:-)是的,有可能。这对我来说总是发生^^^哦,我的天哪……令人尴尬。很明显,在看自己的代码时可能会失明。是的,是托比:-)是的,有可能。对我来说,这种事经常发生^^