Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 代码在纵向模式下工作,而不是横向模式(被阻止)(getActivity()空指针)_Android_Android Fragments - Fatal编程技术网

Android 代码在纵向模式下工作,而不是横向模式(被阻止)(getActivity()空指针)

Android 代码在纵向模式下工作,而不是横向模式(被阻止)(getActivity()空指针),android,android-fragments,Android,Android Fragments,我正在与一个我无法谷歌/解决的bug作斗争。 我们的应用程序阻止了横向模式(它从不改变方向),但在测试时,我看到它在不同的旋转模式下崩溃(但仍处于纵向模式)。 代码始终在纵向模式下运行良好。 我们有一个活动包含ViewPager(带有3个片段)。应用程序在尝试获取getActivity时崩溃(因为它的空指针) 在活动中,我从片段中打开方法,以填充runOnUiThread方法中的一些单选按钮信息: @Override public void onGetPlayerSuccess(Handball

我正在与一个我无法谷歌/解决的bug作斗争。 我们的应用程序阻止了横向模式(它从不改变方向),但在测试时,我看到它在不同的旋转模式下崩溃(但仍处于纵向模式)。 代码始终在纵向模式下运行良好。 我们有一个活动包含ViewPager(带有3个片段)。应用程序在尝试获取getActivity时崩溃(因为它的空指针)

在活动中,我从片段中打开方法,以填充runOnUiThread方法中的一些单选按钮信息:

@Override
public void onGetPlayerSuccess(HandballPlayerTO player) {
    handballPlayer = player;

    if (handballPlayer.gethandballDictionaryFacts() == null) {
        handballPlayer.sethandballDictionaryFacts(new ArrayList<HandballDictionaryFactTO>());
    }

    setRefreshing(false);
    injuriesAdapter.setInjuries(player.getHandballInjuryTOS());
    injuriesAdapter.notifyDataSetChanged();

    setListAppendixViews();

    runOnUiThread(new Runnable() {
        @Override
        public void run() {
            demographicFragment.fillFields();
            careerFragment.fillFields();
            lifestyleFragment.fillFields();
        }
    });
}
这会使应用程序崩溃,而我只是试图通过参数发送给播放器,但它没有正确的信息

我完全糊涂了,因为我从来没有听说过在横向模式/纵向模式下运行代码的区别

两者都有相同的代码,相同的XML。我不会改变方向。我试着从一开始就在横向上运行它(它崩溃了),并在开始活动之前从纵向模式改变方向(它也崩溃了)

我只能找到有关更改方向等问题的空指针问题的解决方案。

解决方案有助于:

我更改了清单文件,将screenOrientation添加到纵向模式。
以前,我们在启动新活动时使用了标志。

请确保在片段中的onAttach之后发生这种情况。如果它发生在活动之前,或者该片段未附加到活动,则此操作将失败
HandballPlayerTO player = ((PlayerActivity) getActivity()).getPlayerTO();