【发布时间】:2015-12-08 13:34:12
【问题描述】:
我在 Fragment Activity 中有一个 View pager,而 View pager 在活动开始时包含两个片段,我有一个休息请求,当我得到响应时,我想更新每个片段内部和每个片段中的视图我正在使用 getActivity 但我的问题是我总是在平板设备上的 getActivity 上出现空指针异常,但我在手机上没有遇到这个问题
那是我的寻呼机适配器
public class Guide_ViewPager_adapter extends FragmentStatePagerAdapter {
private Guides_fragment guide_frag = new Guides_fragment();
private Maps_fragment maps_frag = new Maps_fragment();
public Guide_ViewPager_adapter(FragmentManager fm){
super(fm);
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return guide_frag;
case 1:
return maps_frag;
}
return null;
}
@Override
public int getCount() {
return 2;
}
}
LogCat sn-p:
致命异常:主要 进程:android.vi.com.vad,PID:9554 java.lang.NullPointerException 在 android.vi.com.vad.Guides_fragment.update(Guides_fragment.java:138) 在 android.vi.com.vad.Guide_activity$GuideTask.onPostExecute(Guide_activity.java:213) 在 android.vi.com.vad.Guide_activity$GuideTask.onPostExecute(Guide_activity.java:165) 在 android.os.AsyncTask.finish(AsyncTask.java:632) 在 android.os.AsyncTask.access$600(AsyncTask.java:177) 在 android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:149) 在 android.app.ActivityThread.main(ActivityThread.java:5234) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:515) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609) 在 dalvik.system.NativeStart.main(Native Method)
这是我在加载数据时从活动内部调用它的方法
public void update(String result) {
if (animation != null) {
animation.reset();
animation.cancel();
}
if (loaderImage != null) {
loaderImage.clearAnimation();
loaderImage.setVisibility(View.GONE);
}
if (result.equalsIgnoreCase("null")) {
if (errorImage != null) {
errorImage.setVisibility(View.VISIBLE);
}
} else {
Guide_GridView_adapter adapter = new Guide_GridView_adapter(activity.getApplicationContext(), Guide_activity.Downloads_Guides);
guides_gridView.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
}
当我为活动设置值时:
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
this.activity = getActivity();
}
【问题讨论】:
-
您在平板电脑上使用不同的布局吗?您可以发布包含给出 null 的 getactivity 的函数吗?
-
请发布 logcat 以进行精确调试
-
感谢大家的回复我还没有创建平板布局但我只想在创建平板布局之前测试平板电脑上的活动
标签: android android-fragments android-viewpager