2009-09-10 14 views
8

मैं गतिशील रूप से एक TableLayout से जोड़ सकते हैं और पंक्तियों को हटाने के लिए कोशिश कर रहा हूँ।गतिशील रूप से जोड़ने और हटाने तालिका पंक्तियों - एंड्रॉयड

लेआउट एक xml फ़ाइल में परिभाषित किया गया है।

मैं सफलतापूर्वक एक पंक्ति को दूर करने में सक्षम हूँ, लेकिन जब मैं फोन इसी addView आदेश कुछ नहीं होता।

table = (TableLayout)findViewById(R.id.table); 
row = (TableRow)findViewById(R.id.row); 

table.removeView(row); 

table.addView(row); 

इसके परिणामस्वरूप एक पंक्ति को हटाया जा रहा है, लेकिन फिर से जोड़ा नहीं जा रहा है।

संपादित करें: ऐसा लगता है कि यह सिर्फ स्क्रीन के नीचे के बजाय एक ही स्थान के रूप में यह हटा दिया गया था में अगर सब के बाद जोड़ने की गई थी।

मैं सूचकांक निर्दिष्ट करके सही स्थिति में इसे जोड़ने के लिए कर रहा हूँ:

table.addView(row,4); // 4 happens to the the row 

लेकिन मैं समझ नहीं कैसे पंक्ति के सूचकांक का निर्धारण, वहाँ एक तरीका हो प्रतीत नहीं होता है यह प्राप्त करने के। किसी को पता है कि कैसे करें? (। यानी अगर मुझे नहीं पता था सूचकांक 4 था कैसे मुझे लगता है कि यह पता लगाने सकता है)

संपादित करें: एक्सएमएल शामिल थे। यह सिर्फ सवाल में पंक्ति है, ऊपर और यह

<TableRow android:id="@+id/row"> 

     <TextView android:id="@+id/field1" 
      android:text="testing" 
     android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:padding="3dip" 
      android:textStyle="bold" 
      android:textSize="18dip" 
     /> 


     <TextView android:id="@+id/field2" 
      android:padding="3dip" 
      android:text="test" 
      android:textSize="18dip" 
      android:gravity="right" 
     /> 



    </TableRow> 
+0

आपका कोड एक परीक्षण लेआउट के साथ ठीक काम करता है। आगे टिप्पणी करने के लिए अपने एक्सएमएल लेआउट को देखना पसंद है। – bhatt4982

+0

क्या आपके पास प्रश्न में पंक्ति के ऊपर और नीचे पंक्तियां थीं? – brodie31k

उत्तर

1

उपयोग hierarchyviewer (अपने एसडीके tools/ निर्देशिका में) निर्धारित करने के लिए करता है, तो पंक्ति सही मायने में जोड़ा जाता है नहीं किया जा रहा, या जोड़ा जा रहा है, लेकिन कुछ लेआउट नीचे अन्य पंक्तियों देखते हैं पैरामीटर गड़बड़ कर रहे हैं और इसलिए यह स्क्रीन पर नहीं दिख रहा है।

+0

यहां काफी मदद नहीं मिली, लेकिन सिर के लिए धन्यवाद मैंने पहले पदानुक्रमकर्ता को नहीं देखा था। – brodie31k

1
public int indexOfChild (View child) 

public View getChildAt (int index) 

टेबललेआउट द्वारा प्रदान की गई दोनों विधियां। ;-)

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