Android viewFlipper causing NullPointerException



在我的安卓应用程序中,我使用 viewFlipper 创建了 2 个布局

<?xml version="1.0" encoding="utf-8"?>
<ViewFlipper xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:id="@+id/switching"
android:layout_height="match_parent">
<include layout="@layout/activity_login"/>
<include layout="@layout/content_team_choose"/>
<include layout="@layout/waiting"/>
</ViewFlipper>

<?xml version="1.0" encoding="utf-8"?>
<ViewFlipper xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:id="@+id/switch_game"
android:layout_height="match_parent">
<include layout="@layout/main_game"/>
<include layout="@layout/chat"/>
</ViewFlipper>

在我的拳头活动中可以访问这样的视图

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.switching );
viewFlipper = (ViewFlipper) findViewById(R.id.switching);
//some other code which triggers the change of the view,
//like a onClickListener
viewFlipper.setDisplayedChild(1);

这工作正常。在我的第二个活动中,如果我尝试访问另一个视图翻转器,并且我执行vievFlipper.setDisplayChild(1(,则会抛出NullPointerExcption。所以我试了这个

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.switch_game);
viewFlipper = (ViewFlipper) findViewById(R.id.switch_game);
if(viewFipper == null) 
Log.d("ViewError", "the viewFlipper is null");

并且出现了日志,但我不明白为什么只有在这种情况下视图为空。 我什至尝试在第二个活动中"切换"布局,这也给了我同样的问题。

编辑。NullPointerException 由 viewFlipper.setDisplayChild(1( 抛出; 尝试访问布局的子级,但我不确定是只有子级为空还是所有 viewFlipper,所以我尝试了代码的最后一部分,验证整个布局是否为 null

应用程序尝试使用 具有 null 值的对象引用。

ViewFlipper主要用于我们需要将一个视图转换为另一个视图的情况。

viewFlipper = (ViewFlipper) findViewById(R.id.switch_game);

相关内容

最新更新