2012-11-24 15 views
5

मेरे एंड्रॉइड ऐप के लिए मुझे View आईडी की सरणी बनाने की आवश्यकता है।आप व्यू आईडी के माध्यम से कैसे लूप करते हैं?

सरणी में 81 मान होंगे, इसलिए उन्हें एक-एक करके जोड़ना काफी लंबा है।

cells[0] = R.id.Square00; 
cells[1] = R.id.Square01; 
cells[2] = R.id.Square02; 
cells[3] = R.id.Square03; 
cells[4] = R.id.Square04; 
cells[5] = R.id.Square05; 
//All the way to 80. 

वहाँ एक छोटी/ऐसा करने का सबसे प्रभावशाली तरीका है: यह है कि यह कैसे अब लग रहा है है?

+0

इतने सारे तरीकों का उपयोग की eed .. आप 'setId() का उपयोग कर सकते' और 'getId()' अपने कोड में गतिशील रूप से या वहाँ 'getIndentifier()' ** संसाधन से विधि ** कक्षा। – user370305

उत्तर

5

शुक्र है वहाँ, getIndentifier() का उपयोग किया जाता है:

Resources r = getResources(); 
String name = getPackageName(); 
int[] cells = new int[81]; 
for(int i = 0; i < 81; i++) { 
    if(i < 10) 
     cells[i] = r.getIdentifier("Squares0" + i, "id", name); 
    else 
     cells[i] = r.getIdentifier("Squares" + i, "id", name); 
} 
+1

मैं getPackageName() को एक बार पूर्व लूपिंग –

+0

पर कॉल करना चाहता हूं, निश्चित रूप से, काफी आसान है। – Sam

+0

धन्यवाद, यह एक आकर्षण की तरह काम किया! –

1

सैम जवाब बेहतर है, लेकिन मुझे लगता है कि मैं एक वैकल्पिक

int [] ids = new int [] {R.id.btn1, R.id.btn2, ...}; 
Button [] arrayButton = new Button[ids.length]; 

for(int i=0 ; i < arrayButton.length ; i++) 
{ 
    arrayButton[i] = (Button) findViewById(ids[i]); 
} 

सैम जवाब का संशोधित रूप साझा करना चाहिए

कोई एन यदि किसी और पूर्णांक स्ट्रिंग फॉर्मेटिंग

Resources r = getResources(); 
String name = getPackageName(); 

int[] resIDs = new int[81]; 

for(int i = 0; i < 81; i++) 
{ 
     resIDs[i] = r.getIdentifier("Squares0" + String.format("%03d", i), "id", name); 
} 
संबंधित मुद्दे