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