- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 View 寻呼机在页面之间导航。我正在使用 FragmentStatePagerAdapter。我可以毫无问题地朝一个方向滑动。但如果我刷回旧的。它越来越崩溃。我收到空指针异常。
03-12 10:20:34.273: E/AndroidRuntime(29035): Process: com.titlesource.notarymobile, PID: 29035
03-12 10:20:34.273: E/AndroidRuntime(29035): java.lang.NullPointerException
03-12 10:20:34.273: E/AndroidRuntime(29035): at android.support.v4.app.Fragment.instantiate(Fragment.java:399)
03-12 10:20:34.273: E/AndroidRuntime(29035): at android.support.v4.app.FragmentState.instantiate(Fragment.java:97)
03-12 10:20:34.273: E/AndroidRuntime(29035): at android.support.v4.app.FragmentManagerImpl.restoreAllState(FragmentManager.java:1790)
03-12 10:20:34.273: E/AndroidRuntime(29035): at android.support.v4.app.Fragment.performCreate(Fragment.java:1489)
03-12 10:20:34.273: E/AndroidRuntime(29035): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:893)
03-12 10:20:34.273: E/AndroidRuntime(29035): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
03-12 10:20:34.273: E/AndroidRuntime(29035): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
03-12 10:20:34.273: E/AndroidRuntime(29035): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467)
03-12 10:20:34.273: E/AndroidRuntime(29035): at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:472)
03-12 10:20:34.273: E/AndroidRuntime(29035): at android.support.v4.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:163)
03-12 10:20:34.273: E/AndroidRuntime(29035): at android.support.v4.view.ViewPager.populate(ViewPager.java:1068)
03-12 10:20:34.273: E/AndroidRuntime(29035): at android.support.v4.view.ViewPager.populate(ViewPager.java:914)
03-12 10:20:34.273: E/AndroidRuntime(29035): at android.support.v4.view.ViewPager$3.run(ViewPager.java:244)
03-12 10:20:34.273: E/AndroidRuntime(29035): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
03-12 10:20:34.273: E/AndroidRuntime(29035): at android.view.Choreographer.doCallbacks(Choreographer.java:574)
03-12 10:20:34.273: E/AndroidRuntime(29035): at android.view.Choreographer.doFrame(Choreographer.java:543)
03-12 10:20:34.273: E/AndroidRuntime(29035): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
03-12 10:20:34.273: E/AndroidRuntime(29035): at android.os.Handler.handleCallback(Handler.java:733)
03-12 10:20:34.273: E/AndroidRuntime(29035): at android.os.Handler.dispatchMessage(Handler.java:95)
03-12 10:20:34.273: E/AndroidRuntime(29035): at android.os.Looper.loop(Looper.java:136)
03-12 10:20:34.273: E/AndroidRuntime(29035): at android.app.ActivityThread.main(ActivityThread.java:5102)
03-12 10:20:34.273: E/AndroidRuntime(29035): at java.lang.reflect.Method.invokeNative(Native Method)
03-12 10:20:34.273: E/AndroidRuntime(29035): at java.lang.reflect.Method.invoke(Method.java:515)
03-12 10:20:34.273: E/AndroidRuntime(29035): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
03-12 10:20:34.273: E/AndroidRuntime(29035): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
03-12 10:20:34.273: E/AndroidRuntime(29035): at dalvik.system.NativeStart.main(Native Method)
这是我的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_page_view);
mProgressDialog = new ProgressDialog(JobDetailsActivity.this);
mProgressDialog.setMessage("Loading");
Bundle bundle = getIntent().getExtras();
position = bundle.getInt("list_posiition_details");
List<Fragment> fragments = getFragments();
pageAdapter = new MyPageAdapter(getSupportFragmentManager(), fragments);
pager = (ViewPager)findViewById(R.id.viewpager);
pager.setAdapter(pageAdapter);
pager.setCurrentItem(position);
pager.setOffscreenPageLimit(3);
}
public interface YourFragmentInterface {
void fragmentBecameVisible();
}
private List<Fragment> getFragments(){
List<Fragment> fList = new ArrayList<Fragment>();
final ArrayList<?> temp = DataModel.getScheduleList();
for (final Object obj : temp) {
if(obj instanceof Job) {
String a = ((Job) obj).getA();
String b = Long.toString(((Job) obj).getB());
String c = ((Job) obj).getC();
fList.add(JobDetailsFragment_.newInstance(a, b, c));
mProgressDialog.dismiss();
}
}
return fList;
}
public class MyPageAdapter extends FragmentStatePagerAdapter {
private List<Fragment> fragments;
public MyPageAdapter(FragmentManager fm, List<Fragment> fragments) {
super(fm);
this.fragments = fragments;
}
@Override
public Fragment getItem(int position) {
return this.fragments.get(position);
}
@Override
public int getCount() {
return this.fragments.size();
}
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
}
这是我的 fragment 类:
public class MyFragment extends Fragment {
public static final String EXTRA_MESSAGE = "EXTRA_MESSAGE";
private static View view;
/**
* Note that this may be null if the Google Play services APK is not
* available.
*/
SupportMapFragment mSupportMapFragment;
private GoogleMap googleMap;
public static final MyFragment newInstance(String message)
{
MyFragment f = new MyFragment();
Bundle bdl = new Bundle(1);
bdl.putString(EXTRA_MESSAGE, message);
f.setArguments(bdl);
return f;
}
// View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
String message = getArguments().getString(EXTRA_MESSAGE);
if (view != null) {
ViewGroup parent = (ViewGroup) view.getParent();
if (parent != null)
parent.removeView(view);
}
try {
view = inflater.inflate(R.layout.myfragment_layout, container, false);
TextView messageTextView = (TextView)view.findViewById(R.id.textView);
messageTextView.setText(message);
} catch (InflateException e) {
/* map is already there, just return view as it is */
}
// View v = inflater.inflate(R.layout.myfragment_layout, container, false);
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
FragmentManager fm = getChildFragmentManager();
mSupportMapFragment = (SupportMapFragment) fm.findFragmentById(R.id.location_map);
if (mSupportMapFragment == null) {
mSupportMapFragment = SupportMapFragment.newInstance();
fm.beginTransaction().replace(R.id.location_map, mSupportMapFragment).commit();
}
}
@Override
public void onResume() {
super.onResume();
if (googleMap == null) {
googleMap = mSupportMapFragment.getMap();
googleMap.addMarker(new MarkerOptions().position(new LatLng(0, 0)));
}
}
}
最佳答案
我找到了解决方案。
它的发生是因为 FragmentStatePagerAdapter。在 fragment 中,我们需要分离 getChildFragmentManager。
所以我们需要在activityCreated()之后添加下面的代码
@Override
public void onDetach() {
super.onDetach();
try {
Field childFragmentManager = Fragment.class.getDeclaredField("mChildFragmentManager");
childFragmentManager.setAccessible(true);
childFragmentManager.set(this, null);
} catch (NoSuchFieldException e) {
throw new RuntimeException(e);
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
}
关于android - View Pager Crash Null Pointer Exception 由于导航回旧 fragment - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22355058/
我是 Arduino 世界的新手。编写了以下代码 - 使用 DHT22 传感器。 12 小时后,当温度低于所需温度时,我的温室的加热器没有打开。 关闭电源并重新打开后,一切恢复正常。我知道这段代码很乱
我正在使用 CENTOS6 和 REDHAWK2.0 (RH2.0)。基于“VirtualBox 5.0.16 for Windows host”和“VirtualBox 5.0.17 r106140
在无渲染模式下使用 VMR-9 时如何解决 SelectAtPosition() 崩溃? 最佳答案 使用无渲染模式时的 SelectAtPosition() 崩溃问题可以通过在自定义分配器中实现 IV
这是我从 logcat 复制的错误。我不知道为什么在应用设置屏幕中清除数据后应用程序崩溃。 02-20 17:22:29.980 839-1094/? I/InputReader: Apps
我收到了来自 Apple 的应用提交反馈: Thank you for your resubmission. We were unable to review your app as it crash
我有一个 iPad 应用程序。使用 Fabric 收集崩溃信息。最近出现了一些像 webthread EXC_BREAKPOINT 这样的崩溃。跟踪堆栈上没有我的代码。所以我不知道为什么会发生崩溃。
我有一个在 ubuntu(EC2 实例,t2.small)上运行的简单 python web-scraper,到目前为止它只打印出一个 url 列表: from bs4 import Beautifu
注意:我的问题之前已关闭,我尝试了此处提到的解决方案 - unknown error: session deleted because of page crash from unknown error
我正在尝试从一个场景过渡到另一个场景,但是当我调用 presentScene 时发生崩溃!场景未存储在类中或被引用,它们直接加载到 presentScene 调用中。 Xcode 崩溃截图: 我的简单
我有点困惑,我的应用程序几乎没有崩溃,崩溃日志也有以下信息。 崩溃:com.twitter.crashlytics.ios.exception 这是否意味着它是 Fabric 库的崩溃还是有效的崩溃?
我尝试在我的 ubuntu 16.04 远程服务器上使用 selenium webdriver 和 python 3.5.2 连接到网页 from pyvirtualdisplay import Di
我正在使用使用 Python 和 Selenium 的 InstaPy。我按 Cron 启动脚本,有时它会崩溃。所以它真的很不规则,有时它会很好地贯穿始终。我也已经在 GitHub Repo 上发帖,
最近我换了电脑,从那以后我无法使用 selenium 启动 chrome。我也尝试过 Firefox,但浏览器实例无法启动。 from selenium import webdriver d = we
我正在使用 InstaPy,它使用 Python 和 Selenium。我按照 Cron 启动脚本,但有时它会崩溃。所以它确实不规则,有时它贯穿得很好。我已经在 GitHub Repo 上发布了,但没
我正在使用 InstaPy,它使用 Python 和 Selenium。我按照 Cron 启动脚本,但有时它会崩溃。所以它确实不规则,有时它贯穿得很好。我已经在 GitHub Repo 上发布了,但没
我正在使用使用 Python 和 Selenium 的 InstaPy。我按 Cron 启动脚本,有时它会崩溃。所以它真的很不规则,有时它会很好地贯穿始终。我也已经在 GitHub Repo 上发帖,
我正在尝试使用rook在kubernetes集群上配置ceph,我已经运行了以下命令: kubectl apply -f common.yaml kubectl apply -f operator.y
我有一个屏幕A,在执行了一些POST API任务后,我启用了一个按钮,然后单击按钮导航到屏幕B。当Reaction Native应用程序冻结并崩溃时,崩溃会随机发生。从其他屏幕导航到屏幕B也不是问题,
我想知道操作系统是否可能导致崩溃,例如我是否有代码,它是否有可能在Windows环境下崩溃而在Linux上却没有崩溃?还是这不可能? 最佳答案 最简单的示例是代码,您的意图是使其与平台兼容,但是您的代
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为on-topic
我是一名优秀的程序员,十分优秀!