android - 从 XML 布局扩展 ViewPager

标签 android android-layout android-fragments android-viewpager runtimeexception

我正在关注 Android Programming: The Big Nerd Ranch Guide并且有一个使用 ViewPager 的示例通过 2 个文件:

文件res/values/ids.xml在 XML 中定义一个 id:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <item type="id" name="viewPager" />
</resources>

和Java源文件CrimePagerActivity.java使用该 ID:

public class CrimePagerActivity extends FragmentActivity {
    private ViewPager mViewPager;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        mViewPager = new ViewPager(this);
        mViewPager.setId(R.id.viewPager);
        setContentView(mViewPager);

我尝试更改示例,使 ViewPager 对象从 XML 布局文件 res/layout/crime_pager.xml 中膨胀(而不是仅使用 id ):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ViewPager
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/view_pager" />

</LinearLayout>

然后我尝试在 CrimePagerActivity.java 中使用该对象:

public class CrimePagerActivity extends FragmentActivity {
    private ViewPager mViewPager;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.crime_pager);
        mViewPager = (ViewPager)findViewById(R.id.view_pager);

不幸的是,这不起作用并因 RuntimeException 和少量信息(此处为 fullscreen)而失败:

Eclipse screenshot

请问这里有什么问题?

最佳答案

改变:

<ViewPager
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/view_pager" />

<android.support.v4.view.ViewPager
    android:id="@+id/view_pager"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
</android.support.v4.view.ViewPager>

关于android - 从 XML 布局扩展 ViewPager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26160477/

相关文章:

android - 向 Android Assistant 添加内容

android - Room、Kotlin、Dagger 2.15 android.app.Application 不能在没有@Inject 构造函数或@Provides 注释方法的情况下提供

java - 以编程方式向按钮添加描边

java - 不幸的是,AndroidTest 已经停止

java - Fragments 作为静态内部类与独立公共(public)类的设计逻辑是什么?

java - 如何记住登录谷歌帐户 Android

Android 布局 - 不显示 ImageView

android - android中的底部导航重叠回收器 View 内容

android 恢复应用程序的默认首选项

android - Tab+滑动手势、自定义 GridView 、 fragment