正如標題所說,我在我的片段中創建了一個ImageView。如何解決getActivity()爲空,當我在片段中創建ImageView
private void initBanner(String imgUrl) {
ImageView iv = new ImageView(getActivity());
iv.setScaleType(ScaleType.FIT_XY);
BitmapUtils bitmapUtils = new BitmapUtils(getActivity());
bitmapUtils.display(iv, imgUrl, new BitmapLoadCallBack<View>() {
@Override
public void onLoadCompleted(View arg0, String arg1, Bitmap arg2,
BitmapDisplayConfig arg3, BitmapLoadFrom arg4) {
Bitmap arg = arg2;
arg2 = null;
arg2 = new WeakReference<Bitmap>(arg).get();
((ImageView) arg0).setImageBitmap(arg2);
}
@Override
public void onLoadFailed(View arg0, String arg1, Drawable arg2) {
}
});
bannerList.add(iv);
}
而且,我的活動擴展到了FragmentActivity。這並不總是發生,有時或可能是某種特殊類型。我已經建立一個bug 收集我的應用程序,這樣我就可以看到什麼caused.Here一些錯誤infomations:
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference
at android.view.ViewConfiguration.get(ViewConfiguration.java:365)
at android.view.View.<init>(View.java:3791)
at android.widget.ImageView.<init>(ImageView.java:131)
at bb.h.b(SourceFile:301)
at bb.h.a(SourceFile:242)
at bb.h.a(SourceFile:239)
at bb.i.handleMessage(SourceFile:129)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5942)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
也是這樣:
java.lang.NullPointerException
at miui.util.UiUtils.getMiuiUiVersion(UiUtils.java:100)
at miui.util.UiUtils.isV5Ui(UiUtils.java:108)
at android.view.Injector$ViewConfigurationHook.get(Injector.java:173)
at android.view.ViewConfiguration.get(ViewConfiguration.java:336)
at android.view.View.<init>(View.java:3453)
at android.widget.ImageView.<init>(ImageView.java:114)
at bb.h.b(SourceFile:301)
at bb.h.a(SourceFile:242)
at bb.h.a(SourceFile:239)
at bb.i.handleMessage(SourceFile:129)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5050)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:805)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:621)
at dalvik.system.NativeStart.main(Native Method)
的NullPointerException異常兩個點線301 。
ImageView iv = new ImageView(getActivity());
我已經想過這個error.Maybe該活動是研究背景的過程,不幸被recycled.Then我恢復了,碎片也找不到它的附activity.so我這樣做:
if (savedInstanceState != null) {
String FRAGMENTS_TAG = "android:support:fragments";
// remove掉保存的Fragment
savedInstanceState.remove(FRAGMENTS_TAG);
}
,並覆蓋onSavedInstance活動的方法:
@Override
protected void onSaveInstanceState(Bundle outState) {
}
但是,這是無奈的,我仍然爲Android一個newbird。請告訴我如何解決這個問題,非常感謝。
什麼是ImageView?這是來自你的XML的圖像? –
你把方法放在哪裏:initBanner(String imgUrl)?在活動中? – Vigor
不,在片段中。 – zienhern