close

在 Adnroid 裡
無論是圖片、字串、style、layout......等等
都有屬於自己獨一無二的 ID 編號
我們常常會用 R.XXX.resource name 來取得 ID 編號

 

那假設我們今天有image0、image1…
然後我們使用ListView、RecyclerView......等元件時
需要用code去產生畫面,去塞圖片進去的話
就像這樣

    String resName = "image"+position; 

我們有沒有辦法拿 String 去取得 ID 呢?

 

答案是可以的
我們來試試下面這段code

    String resName = "image"+position;
    int resId =getApplicationContext().getResources()
               .getIdentifier(resName
                             ,"drawable"
                             ,getPackageName());
    imageView.setImageResource(resId);

Run 過 Project 之後
我們很神奇的發現
圖片乖乖的照 position 放好了欸

 

我們可以從code裡可以看出來
關鍵 method 是 getIdentifier ( resName , resType , PackageName )
那這三個參數要怎麼使用呢?

 

第一個、就是我們的檔案名稱,也就是image0~10這個
第二個、則是我們放在哪個資料夾,如下圖

第三個、則是PackageName,也就是專案的package, 例如:com.willy.android.apple

 

解說完畢,是不是很簡單呢
趕快來試試吧!!!

 

資料來源:
https://developer.android.com/reference/android/content/res/Resources.html#getIdentifier(java.lang.String, java.lang.String, java.lang.String)

 


arrow
arrow
    全站熱搜

    顏澤偉 發表在 痞客邦 留言(0) 人氣()