R.id.pager?这定义在哪里?

Ada*_*dam 2 android android-layout

对于viewpager的例子,在这里,包含线路:

    mViewPager = new ViewPager(this);
    mViewPager.setId(R.id.pager);
Run Code Online (Sandbox Code Playgroud)

我不明白R.id.pager是如何定义的.我应该在某个地方用xml创建一个viewpager吗?但这没有意义,因为它在前一行中实例化了一个viewpager.如果有人能为我清除这一点,我将非常感激!

谢谢!!

编辑

显然将线路更改为:

mViewPager.setId(1);
Run Code Online (Sandbox Code Playgroud)

使它工作:) :)

Ted*_*opp 9

您可以直接在res/values目录中的资源文件中定义id .该文件的名称是无关紧要的,但它可能看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <item
        type="id"
        name="pager" />
</resources>
Run Code Online (Sandbox Code Playgroud)

当您使用如下属性为布局元素设置id时,ID也会在布局中自动弹出:

android:id="@+id/pager"
Run Code Online (Sandbox Code Playgroud)

+在属性说,到指定的ID添加到R.id,如果它已不存在.

最好使用XML定义的ID,而不是将值硬编码到代码中,原因与使用符号常量(例如final static int FOO = 1;)更好,而不是在任何地方都使用整数文字.

有关详细信息,请参阅ID资源上的文档.