2011-01-23 18 views
5

देखने पर मेरे Android गतिविधि में बटन जोड़ने के लिए, मुझे लगता है कि SurfaceView (MonoDroid वाक्य रचना में तो मामूली बदलाव का प्रयोग करके) फैली हुई है कस्टम दृश्य बना सामग्री देखने के लिए दृश्य:एंड्रॉयड: कैसे प्रोग्राम के रूप में

protected override void OnCreate(Bundle bundle) 
{ 

    base.OnCreate(bundle); 

    ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FillParent, ViewGroup.LayoutParams.FillParent); 

    FriendsView friendsView = new FriendsView(this); 

    SetContentView(friendsView, layoutParams); 

} 

मैं दृश्य में एक बटन जोड़ना चाहता हूं, लेकिन यह कैसे काम नहीं कर सकता। मैंने जो कुछ भी पढ़ा है वह main.xml के दृष्टिकोण से शुरू होता है, लेकिन मुझे नहीं लगता कि मेरे दृश्य में दिखाई देने वाला बटन घोषित करने के लिए इसका उपयोग कैसे किया जाए। समान रूप से, मुझे या तो गतिविधि या दृश्य कक्षाओं में कोई विधि नहीं मिल रही है जो मुझे बटन ऑब्जेक्ट को प्रोग्रामिक रूप से जोड़ने देता है।

मुझे यकीन है कि मुझे कुछ अवधारणा याद आ रही है, लेकिन मुझे सही दिशा में जाने के लिए किसी भी मदद का स्वागत होगा।

+0

क्षमा करें, आपने इस प्रोटोटाइप के साथ अपने कन्स्ट्रक्टर 'व्यू ग्रुप। लयआउट पैराम्स' कहां लिया? – Dims

+0

आप अपना उत्तर सही [यहां] ढूंढ सकते हैं (http://stackoverflow.com/a/7679516/828728)। – yugidroid

उत्तर

10

यदि मैं सही ढंग से समझता हूं तो आप अपने दोस्तों को देखते हैं, ठीक है, लेकिन आप इसमें एक बटन जोड़ना चाहते हैं? मुझे नहीं पता कि आपके फ्रेंड्स व्यू किस प्रकार का है, लेकिन यह मानना ​​है कि आप कुछ ऐसा कर सकते हैं जिसमें आप बच्चों को जोड़ सकते हैं (जैसे रैखिक लयआउट या कुछ), आपको यह करने में सक्षम होना चाहिए (बस मेरे सिर के शीर्ष से)

//assuming you have a friendsView object that is some sort of Layout. 
Button yourButton = new ImageButton(this); 
//do stuff like add text and listeners. 

friendsView.addView(yourButton); 

अगर वहाँ friendsView में कुछ अन्य तत्व आप एक बच्चे को जोड़ने के लिए करने के लिए, तो आप सिर्फ यह findViewById() (आपके तत्वों के लिए आईडी जोड़ने अगर तुम उन्हें इस तरह लगाना चाहते हैं)

+0

हाय, नैन - हाँ, यह सही है। मेरा विचार ठीक काम कर रहा है, लेकिन मैं इसमें कुछ कार्यक्षमता जोड़ना चाहता हूं जिसमें एक बटन जोड़ना शामिल है। – user304582

+0

तो मैं addView फ़ंक्शन का सुझाव दूंगा :) – Nanne

+1

मैंने आपके सुझाव की कोशिश की, लेकिन मेरे कस्टम व्यू में कोई ऐडव्यू विधि नहीं है (यह SurfaceView को बढ़ाती है)। SurfaceViews बटन का समर्थन नहीं करते हैं? – user304582

4

एक SurfaceView कर सकते हैं पा सकते हैं चाहता हूँ बच्चे नहीं हैं, केवल व्यू ग्रुप कैन (लाइनरलाउट, रिलेटिव लेआउट, ...) पर आधारित दृश्य मुझे लगता है कि आप अपने ContentView(), या इसके बजाय एक रिलेवेटिवआउट (यदि वें ई बटन SurfaceView "अंदर" होना चाहिए)। लीनियरलाउट के लिए, आपको रिलेवेटिवआउट के लिए लेआउट ओरिएंटेशन (सेटऑरिएंटेशन()) का ख्याल रखना होगा, आपको बच्चों के लेआउट पैराम्स के बारे में बहुत विशेष देखभाल करना होगा जो रिलेटिव लयआउट के अंदर बच्चों के सापेक्ष निर्देशांक/पदों को परिभाषित करेंगे।

यदि आप एक्सएमएल से सभी को बढ़ाते हैं तो सबसे अच्छा होगा। आप XML फ़ाइल में पूर्ण श्रेणी नाम का उपयोग कर अपने "स्वयं" दृश्य भी बढ़ा सकते हैं। मूल रूप से एक सामग्री दृश्य को एक साथ रखने की आवश्यकता नहीं है।

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