ClasscastException при приведении к ViewPager - PullRequest
2 голосов
/ 06 сентября 2011

Я пытаюсь создать приложение на основе нового 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. У кого-нибудь есть идея, почему это происходит?

Ответы [ 2 ]

3 голосов
/ 06 сентября 2011

На самом деле проблема заключается в старой проблеме раздувания макета (смотрите здесь ). По некоторым магическим причинам findViewByID не возвращает здесь ноль. Вместо того, чтобы возвращать нуль, он возвращает android.support.v4.app.NoSaveStateFrameLayout, что очень забавно, кстати.

0 голосов
/ 06 сентября 2011

Исключения приведения класса возникают при попытке привести объект к типу, который не совместим с ним.Поэтому, пожалуйста, проверьте, правильна ли ViewPager инстанциация, которую вы делаете.

...