2010-08-13 13 views
19

से किसी विशिष्ट लेआउट में एक दृश्य जोड़ें, मैं LinearLayout पर गतिशील रूप से कुछ दृश्य जोड़ना चाहता हूं जो पहले ही एक्सएमएल में परिभाषित है।एंड्रॉइड: कोड

मैं स्क्रीन पर विचार जोड़ने में सक्षम हूं लेकिन उन्हें LinearLayout दाएं 'अंदर' नहीं रखा जा रहा है।

का उपयोग करके View प्राप्त करने के समान, मैं कोड से इस विशिष्ट लेआउट का संदर्भ कैसे प्राप्त कर सकता हूं?

+1

आप अपने दाहिने LinearLayout में नहीं विचारों के साथ खत्म हो, तो इसका मतलब आप एक बुरा है इसका संदर्भ लें। यदि आप सही तरीके से आईडी द्वारा अपना रैखिक लेआउट पाते हैं (एक्सएमएल फाइल में परिभाषित अनन्य आईडी द्वारा उर्फ)। और कोड के बिना, ज्यादा नहीं कहा जा सकता है। – Pentium10

उत्तर

38

के रूप में बताया आप कर सकते हैं

ViewGroup layout = (ViewGroup) findViewById(R.id.your_layout_id); 
TextView tv = new TextView(this); 
tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
tv.setText("Added tv"); 
layout.addView(tv); 

LinearLayout वर्ग फैली ViewGroup जो अपने आप में देखें वर्ग फैली हुई है। यह एक लेआउट के संदर्भ को किसी अन्य दृश्य के संदर्भ के रूप में आसान बनाता है।

+0

व्यू ग्रुप का उपयोग करके, यह पूरी तरह से काम करता है! – Erik

+0

मेरे लिए काम करता है, धन्यवाद! केवल एक नोट, मेरे मामले में मैं क्षैतिज अभिविन्यास का उपयोग कर रहा था, लेकिन हर बार जब मैंने नया आइटम जोड़ा, तो यह प्रकट नहीं हुआ। केवल जब मैंने उन्मुखीकरण को लंबवत में बदल दिया तो नया आइटम दिखाई दिया। –

20

यह काम करना चाहिए: Marcarse

LinearLayout layout = (LinearLayout) findViewById(R.id.your_layout_id); 
TextView tv = new TextView(this); 
tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
tv.setText("Added tv"); 
layout.addView(tv); 
+0

हर बार जब मैं गतिविधि को फिर से लोड करता हूं, नए जोड़े गए दृश्य प्रकट नहीं होते हैं। मैं जानना चाहता हूं कि उन विचारों को 'व्यू ग्रुप' में कैसे बनाया जाए ताकि उन्हें स्थायी रूप से जोड़ा जा सके? धन्यवाद –

1

बेहतर संस्करण: गतिविधि में एक और लेआउट को जोड़ने के लिए/टुकड़ा

LayoutInflater mInflater = LayoutInflater.from(getActivity()); 
View mProgressBarFooter = mInflater.inflate(R.layout.spinner, null, false); 
textLoader = (TextView) mProgressBarFooter.findViewById(R.id.footer_label); 

मुबारक कोडिंग (-:

संबंधित मुद्दे