2010-11-10 8 views
8

के साथ दो एक्सएमएल तत्व मैं दो टेक्स्ट व्यू को बिल्कुल उसी तरह संशोधित करने की कोशिश कर रहा हूं। मैंने सोचा कि मैं उन्हें एक ही आईडी दे सकता हूं और findViewById() और setText() विधियों के साथ उन टेक्स्ट व्यू को दो पंक्तियों में बदल सकता है। लेकिन ऐसा लगता है कि केवल एक टेक्स्ट व्यू बदल गया है।एक ही आईडी

क्या ऐसा करने का कोई तरीका है? या मुझे प्रत्येक तत्व के लिए अलग-अलग आईडी बनाना है, प्रत्येक तत्व कोViewById() विधि से ढूंढें और इसे टेक्स्ट सेट करें?

+0

आप ऐसा क्यों करेंगे? – Macarse

+1

एंड्रॉइड! = JQuery – Felix

+0

मैं ऐसा क्यों करूं? मेरे पास विजेट पर दो लीनियर लेआउट हैं जो अलग-अलग (तत्वों के विभिन्न गुरुत्वाकर्षण मूल्य) बनाते हैं। मैंने सोचा कि दो अलग-अलग लेआउट करना आसान होगा और एक दृश्यमान होगा और दूसरी आवश्यकता होने पर चलेगा। – Seraphis

उत्तर

5

देखें आईडी सादा पूर्णांक हैं, इसलिए आप आसानी से उन आईडी की सरणी कर सकते हैं जिन्हें आप बदलना चाहते हैं। उदाहरण के लिए:

int[] ids = { R.id.text1, R.id.text2, ... }; 
for (int id: ids) { 
    TextView tv = (TextView) findViewById(id); 
    tv.setText("Hello, World!"); 
} 
बेशक

, यह सबसे अच्छा होगा ids एक स्थिर अंतिम वर्ग के सदस्य के रूप में है। आईई .:

public class MyActivity extends Activity { 
    private static final int[] textViewIDs = { 
     R.id.text1, 
     R.id.text2, 
     ... 
    } 
    ... 
} 
+0

मुझे लगता है कि यह मेरी समस्या का एकमात्र समाधान है। धन्यवाद – Seraphis

0

आपको दो अलग-अलग आईडी परिभाषित करना होगा। एक ही आईडी के साथ एक विजेट के रूप में एक और तरीका है क्योंकि दोनों अलग-अलग और स्वतंत्र विजेट हैं।

0

प्रत्येक आईडी के लिए एक आईडी अद्वितीय है। इसलिए साझा नहीं किया जा सकता है। आप क्या कर सकते हैं दोनों कोड में लाए गए आईडी देखें और टेक्स्ट को संशोधित करने के लिए conditons है। जैसे कि (id == id1 & & id == id2) फिर टेक्स्ट संपादित करें।

+0

"कोड में लाने वाले दोनों दृश्यों को देखने के लिए" का क्या अर्थ है? क्या आप मुझे बता सकते हैं कि उस स्थिति में कौन सा टेक्स्ट व्यू संशोधित किया जाएगा? – Seraphis