我的上下文是什么,我在哪里可以找到它?
What is my context and where do I find it?
我之前问过类似的问题,但我不知道该怎么做,我也阅读了其他解决方案,例如:What is a NullPointerException, and how do I fix it?
还是不知道怎么办,求助:
据我了解,我的 context = null;
我不知道为什么,以及如何解决它...
我写了一个 UniversImageLoader.class 以便能够在多个活动中加载图像。现在我已经在我的所有活动中启动它,但是在我的 UIL class 中,我需要传递一个上下文。
public class UniversalImageLoader {
private static final int defaultImage = R.drawable.ic_android;
private Context mContext;
public UniversalImageLoader(Context context) {
mContext = context;
}
public ImageLoaderConfiguration getConfig(){
//File cacheDir = StorageUtils.getCacheDirectory(mContext);
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(mContext)//<--the error is in this line
.memoryCacheExtraOptions(480, 800) // default = device screen dimensions
.diskCacheExtraOptions(480, 800, null)
.threadPriority(Thread.NORM_PRIORITY - 2) // default
.tasksProcessingOrder(QueueProcessingType.FIFO) // default
.denyCacheImageMultipleSizesInMemory()
.memoryCache(new LruMemoryCache(2 * 1024 * 1024))
.memoryCacheSize(2 * 1024 * 1024)
.memoryCacheSizePercentage(13) // default
.diskCacheSize(50 * 1024 * 1024)
.diskCacheFileCount(100)
.diskCacheFileNameGenerator(new HashCodeFileNameGenerator()) // default
.imageDownloader(new BaseImageDownloader(mContext)) // default
.defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default
.writeDebugLogs()
.build();
return config;
}
在家里Activity:[在每个Activity我都这样称呼它]
private void initImageLoader(){
UniversalImageLoader universalImageLoader = new UniversalImageLoader(mContext);
ImageLoader.getInstance().init(universalImageLoader.getConfig());
}
在所有这些活动中,我在 OnCreate 方法中这样调用它:
initImageLoader();
所以我已经阅读并查看了其他解决方案,但找不到可以理解的答案...非常感谢您的指导!
在构造函数中使用 this.mContext = context;
,这样它会将您的上下文传递给当前 class 的上下文。
并在您使用此 class 的地方传递 getApplicationContext
或 yourActivityName.this
。
如果您在片段中使用它,请使用 getActivity
或 getContext
。
我之前问过类似的问题,但我不知道该怎么做,我也阅读了其他解决方案,例如:What is a NullPointerException, and how do I fix it? 还是不知道怎么办,求助:
据我了解,我的 context = null;
我不知道为什么,以及如何解决它...
我写了一个 UniversImageLoader.class 以便能够在多个活动中加载图像。现在我已经在我的所有活动中启动它,但是在我的 UIL class 中,我需要传递一个上下文。
public class UniversalImageLoader {
private static final int defaultImage = R.drawable.ic_android;
private Context mContext;
public UniversalImageLoader(Context context) {
mContext = context;
}
public ImageLoaderConfiguration getConfig(){
//File cacheDir = StorageUtils.getCacheDirectory(mContext);
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(mContext)//<--the error is in this line
.memoryCacheExtraOptions(480, 800) // default = device screen dimensions
.diskCacheExtraOptions(480, 800, null)
.threadPriority(Thread.NORM_PRIORITY - 2) // default
.tasksProcessingOrder(QueueProcessingType.FIFO) // default
.denyCacheImageMultipleSizesInMemory()
.memoryCache(new LruMemoryCache(2 * 1024 * 1024))
.memoryCacheSize(2 * 1024 * 1024)
.memoryCacheSizePercentage(13) // default
.diskCacheSize(50 * 1024 * 1024)
.diskCacheFileCount(100)
.diskCacheFileNameGenerator(new HashCodeFileNameGenerator()) // default
.imageDownloader(new BaseImageDownloader(mContext)) // default
.defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default
.writeDebugLogs()
.build();
return config;
}
在家里Activity:[在每个Activity我都这样称呼它]
private void initImageLoader(){
UniversalImageLoader universalImageLoader = new UniversalImageLoader(mContext);
ImageLoader.getInstance().init(universalImageLoader.getConfig());
}
在所有这些活动中,我在 OnCreate 方法中这样调用它:
initImageLoader();
所以我已经阅读并查看了其他解决方案,但找不到可以理解的答案...非常感谢您的指导!
在构造函数中使用 this.mContext = context;
,这样它会将您的上下文传递给当前 class 的上下文。
并在您使用此 class 的地方传递 getApplicationContext
或 yourActivityName.this
。
如果您在片段中使用它,请使用 getActivity
或 getContext
。