2013-04-20 17 views
12

मैं xml का उपयोग किये बिना स्पिनर बनाना चाहता हूं। मैं एंड्रॉइड में नया हूं और मेरा ज्ञान सीमित है। अब तक मेरे पास यह कोड है (ऊपर देखें) और मैं अपने स्पिनर को अपनी टैबएक्टिविटी के टैब पर चाहता हूं। कोई स्पष्ट त्रुटि नहीं है, लेकिन जब मैं अपनी गतिविधि खोलता हूं तो टैब खाली होता है। मैं कुछ मदद की सराहना करता हूं।स्पिनर प्रोग्रामेटिक रूप से एंड्रॉइड

public class Search extends Activity { 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    ArrayList<String> spinnerArray = new ArrayList<String>(); 
    spinnerArray.add("one"); 
    spinnerArray.add("two"); 
    spinnerArray.add("three"); 
    spinnerArray.add("four"); 
    spinnerArray.add("five"); 

    Spinner spinner = new Spinner(this); 
    ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, spinnerArray); 
    spinner.setAdapter(spinnerArrayAdapter); 


} 
+0

इसका मतलब क्या है कि आप "स्पिनर" टैब पर "? क्या आप एक उदाहरण दिखा सकते हैं जो आप प्राप्त करने की कोशिश कर रहे हैं? –

उत्तर

24

आपको लेआउट में Spinner जोड़ने की आवश्यकता है।

पहले Spinner के लिए बनाएं और फिर Spinner बनाएं और इसे अपने container पर जोड़ें। Activity आपके container पर अगली सेट सामग्री।

यह इस तरह किया जा सकता है, अपने onCreate विधि में:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_my); 

    LinearLayout layout = new LinearLayout(this); 

    ArrayList<String> spinnerArray = new ArrayList<String>(); 
    spinnerArray.add("one"); 
    spinnerArray.add("two"); 
    spinnerArray.add("three"); 
    spinnerArray.add("four"); 
    spinnerArray.add("five"); 

    Spinner spinner = new Spinner(this); 
    ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, spinnerArray); 
    spinner.setAdapter(spinnerArrayAdapter); 

    layout.addView(spinner); 

    setContentView(layout); 
} 

संपादित करें:

बस स्पष्ट करने के लिए: Spinner एक अंदर Activity की सामग्री में नहीं जोड़ा जाता है, तो लेआउट, यह दिखाई नहीं दे रहा है, इसलिए आपको कोई त्रुटि या कुछ भी नहीं मिला है, क्योंकि आपके कोड में कोई त्रुटि नहीं है, प्रति से ;-)

+0

मैं एक टैबएक्टिविटी का उपयोग करता हूं और मेरे गतिविधि लेआउट में एक टैबहोस्ट होता है। मैं केवल एक टैब में स्पिनर का उपयोग करना चाहता हूं और यही कारण है कि मैंने एक्सएमएल में स्पिनर नहीं लगाया। स्पिनर डालने और इसे केवल इस टैब में उपयोग करने के लिए एक और लेआउट (Activity_my) बनाना संभव है ?? – MavrosGatos

+0

स्पिनर को एक विशिष्ट टुकड़े में जोड़ने के लिए आपको स्पिनर को गतिविधि के लेआउट की बजाय विशिष्ट टुकड़े लेआउट में जोड़ना होगा। अगर यह समझ में नहीं आता है कि इसके लिए एक नया सवाल खुलता है। – Darwind

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