2014-10-28 16 views
-1

我試圖與項目申報陣列具有財產type="id"如何製作獨特的android ids數組?

<item name="viewpager_id_base" type="id"/> 
<integer-array name="viewpager_dates" type="id"> 
    <item type="id">0</item> 
    <item type="id">1</item> 
    <item type="id">2</item> 
    <item type="id">3</item> 
    <item type="id">4</item> 
    <item type="id">5</item> 
    <item type="id">6</item> 
    <item type="id">7</item> 
    <item type="id">8</item> 
    <item type="id">9</item> 
    <item type="id">10</item> 

</integer-array> 

但ID不會創造了R檔的ID。只有ID爲viewpager_id_base appiared下面的代碼

+0

你想通過這個達到什麼樣的? **要清楚你的要求** – 2014-10-28 10:53:50

回答

1

好像你不能這樣做,在XML文件中。 試試這個:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <item name="id1" type="id"/> 
    <item name="id2" type="id"/> 
    <item name="id3" type="id"/> 
    <item name="id4" type="id"/> 
    <item name="id5" type="id"/> 
</resources> 

,並在Java代碼:

int[] idArrays = new int[]{R.id.id1, R.id.id2, R.id.id3, R.id.id4, R.id.id5} ; 
+0

不是ecxactly一個desiered的東西,但它的作品:) – Yarh 2014-10-28 11:08:53

1

用途:

<string name="earth">Earth</string> 
<string name="moon">Moon</string> 

<string-array name="system"> 
    <item>@string/earth</item> 
    <item>@string/moon</item> 
</string-array> 

見下面的鏈接瞭解更多信息: -

Referencing a string in a string array resource with xml

+0

我喜歡這種方法,它適用於字符串。但我不能像 @ item/day1那樣引用'item'。你知道可能的解決方法嗎? – Yarh 2014-10-28 11:04:19

2

我知道這個問題是很久以前的事,但有人可能會發現我的答案是有用的。

示例XML:

<resources> 
    <item name="first_id" type="id" /> 
    <item name="second_id" type="id" /> 
    <item name="third_id" type="id" /> 

    <array name="default_ids"> 
     <item>@id/first_id</item> 
     <item>@id/second_id</item> 
     <item>@id/third_id</item> 
    </array> 
</resources> 

獲取ID數組:

TypedArray typedArray = getResources().obtainTypedArray(R.array.default_menu_ids); 
int[] ids = new int[typedArray.length()]; 
for(int ind=0; ind<typedArray.length(); ind++){ 
    ids[ind] = typedArray.getResourceId(ind,0); 
} 

typedArray.recycle(); 

getResourceId的第二個參數是在默認情況下,你的id弄亂的東西。

(老實說,我不知道爲什麼人們downvoted這個問題。現在的問題是很清楚的。)