2

我正在尝试基于兼容性库中的新 ViewPager 创建一个应用程序。当我从示例应用程序中复制行时:

setContentView(R.layout.main);
MyAdapter mAdapter = new MyAdapter(getSupportFragmentManager(), this);
ViewPager mPager = (ViewPager) findViewById(R.id.view_pager);
mPager.setAdapter(mAdapter);

使用以下 main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <android.support.v4.view.ViewPager 
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/view_pager"
    />
<LinearLayout>

我得到一个

java.lang.ClassCastException: android.support.v4.app.NoSaveStateFrameLayout

在我投射到 ViewPager 的那一行。有谁知道为什么会这样?

4

2 回答 2

3

实际上问题在于旧的布局膨胀问题(看这里)。由于某些神奇的原因 findViewByID 在这里不返回 null 。它不是返回 null,而是返回一个 android.support.v4.app.NoSaveStateFrameLayout,顺便说一句,这很有趣。

于 2011-09-06T16:20:12.663 回答
-2

当您尝试将对象转换为与其不兼容的类型时,会发生类转换异常。所以请检查ViewPager你正在做的实例化是否正确。

于 2011-09-06T10:39:03.200 回答