2010-07-09 19 views
12

मैं प्रोग्रामर रूप से एक रैखिक लेआउट में दृश्य जोड़ने की कोशिश कर रहा हूं।एंड्रॉइड: दो पाठ दृश्य प्रोग्रामेटिक रूप से

LinearLayout layout  = (LinearLayout) findViewById(R.id.info); 
    String [] informations = topOffer.getInformations(); 
    TextView informationView; 
    View line = new View(this); 
    line.setLayoutParams(new LayoutParams(1, LayoutParams.FILL_PARENT)); 
    line.setBackgroundColor(R.color.solid_history_grey); 
    for (int i = 0; i < informations.length; i++) { 
     informationView = new TextView(this); 
     informationView.setText(informations[i]); 
     layout.addView(informationView, 0); 
     layout.addView(line, 1); 
    } 

पहले, मैं केवल informationsView को शामिल किया है, और सब कुछ ठीक काम किया। लाइन-व्यू को जोड़ने के बाद बटन, यह निम्न त्रुटि से क्रैश हो गया:

java.lang.IllegalStateException: निर्दिष्ट बच्चे के पास पहले से ही एक अभिभावक है। आपको पहले बच्चे के माता-पिता पर removeView() को कॉल करना होगा।

तो मैं addView (देखें वी, पूर्णांक सूचकांक) की कोशिश की है, लेकिन यह एक ही संदेश के साथ दुर्घटनाग्रस्त हो गया ...

है किसी एक समाधान?

धन्यवाद, मार्टिन

उत्तर

2

आप नहीं एक ही बच्चे को देखने के लिए कई बार एक ही मूल दृश्य में जोड़ सकते हैं। आपको हर बार एक नया दृश्य बनाने या एक नया दृश्य बढ़ाने की जरूरत है।

12

gpmoo7 के रूप में कहा था कि आप हर बार एक नई दृश्य बनाने के लिए पाश में की जरूरत है

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.linear); 

    LinearLayout layout = (LinearLayout) findViewById(R.id.linear); 

    String[] informations = new String[] { "one", "two", "three" }; 
    TextView informationView; 

    for (int i = 0; i < informations.length; i++) { 
     View line = new View(this); 
     line.setLayoutParams(new LayoutParams(1, LayoutParams.MATCH_PARENT)); 
     line.setBackgroundColor(0xAA345556); 
     informationView = new TextView(this); 
     informationView.setText(informations[i]); 
     layout.addView(informationView, 0); 
     layout.addView(line, 1); 
    } 

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