जिस ऐप पर मैं काम कर रहा हूं उसके लिए एक गतिशील लेआउट की आवश्यकता है जो प्रोफ़ाइल के क्षैतिज स्क्रॉलव्यू प्रदर्शित करता है। एक प्रोफ़ाइल बस एक तस्वीर और कुछ पाठ के साथ एक सापेक्ष Layout है। चूंकि मुझे डेटा फ़ाइल से डेटा मिलता है, इसलिए मुझे प्रत्येक प्रोफ़ाइल के लिए एक सापेक्ष लेआउट बनाना होगा। सबसे पहले मैंने प्रत्येक रिलेवेटलाइट को प्रोग्राम के लिए लूप में बनाया और फिर इसे मूल दृश्य में जोड़ा। यह काम करता है, लेकिन मैं इसे इस तरह से नहीं करना चाहता हूं। मैं डिवाइस के स्क्रीन आकार के आधार पर विभिन्न लेआउट फाइलों का उपयोग करना चाहता हूं।एंड्रॉइड: क्या एक दृश्य की एक प्रति बनाना संभव है?
तब मैंने सोचा। खैर, क्या होगा यदि मेरे पास सिर्फ एक प्रोफ़ाइल वाला लेआउट था? मेरा कोड उस प्रोफाइल को findViewById()
के साथ प्राप्त कर सकता है और फिर इसके आधार पर नए बनाएगा! दूसरे शब्दों में:
// get the layout
profileLayout = (LinearLayout) findViewById(R.id.profileLayout);
// get the first profile in the layout
originalProfile = (RelativeLayout) findViewById(R.id.profile1);
// make copy of profile
temporaryProfile = originalProfile;
// make changes to the this profile and add it back
profileLayout.addView(temporaryProfile);
बेशक
, यह काम नहीं करता क्योंकि यह जावा और temporaryProfile अब originalProfile लिए एक संदर्भ है। तो क्या इस सापेक्ष लयआउट की प्रतिलिपि बनाने का कोई तरीका है? मुझे लेआउट इन्फ्लेटर के बारे में पता है, लेकिन मुझे अभी भी समझ में नहीं आता कि यह कैसे काम करता है। Object.clone()
भी है।
धन्यवाद! –