2012-07-20 40 views
2

爲viewpager,here的例子,包含行:R.id.pager?這個定義在哪裏?

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

我不明白R.id.pager是如何定義的。我應該在xml中創建一個viewpager嗎?但是這沒有意義,因爲它在前一行中實例化了一個viewpager。如果有人能爲我解決這個問題,我將非常感激!

謝謝!

編輯

顯然改變行:

mViewPager.setId(1); 

使得它的工作:) :)

+0

你試過'android.R.id.pager'嗎?如果這不起作用,那麼試試這種方法。 http://stackoverflow.com/questions/7723964/replace-fragment-inside-a-viewpager。如果你想知道爲什麼,我可以發表解釋。 – edthethird 2012-07-20 01:47:45

回答

9

您可以在res/values目錄下的資源文件直接定義ID。該文件的名稱是無關緊要的,但它可能是這個樣子:

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

標識還可以自動彈起佈局中,當你使用像這樣的屬性的佈局元素設置ID:

android:id="@+id/pager" 

該屬性中的+表示將指示的ID添加到R.id如果它尚未存在。

最好使用XML定義的ID,而不是在代碼中硬編碼一個值,出於同樣的原因,最好使用符號常量(例如final static int FOO = 1;),而不是在任何地方散佈整數文字。

有關更多信息,請參見the docs on ID resources

+0

完美,謝謝! :) – Adam 2012-07-20 01:55:38

1

它在bin文件夾下的R.txt文件中定義。

int id pager 0x7f05003c