2011-01-27 17 views
6

तालिका लेआउट में मैं एक tablerow है और वह tablerow में मैं 6 संपादित पाठ बॉक्स है और मुझे लगता है कि 6 संपादित पाठ बॉक्ससंपादन टेक्स्ट बॉक्स के लेआउट मार्जिन कैसे सेट करें?

के लिए लेआउट हाशिये सेट करना चाहते हैं
TableLayout t1=(TableLayout)findViewById(R.id.table_layout01); 

    TableRow tr1=new TableRow(inventory.this); 
    tr1.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT)); 


    tr1.setBackgroundColor(Color.BLACK); 
    EditText ed6=new EditText(inventory.this); 
    //ed6.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); 
    /*ViewGroup.MarginLayoutParams editmargin=new ViewGroup.MarginLayoutParams(ViewGroup.MarginLayoutParams.FILL_PARENT,ViewGroup.MarginLayoutParams.WRAP_CONTENT); 
    editmargin.setMargins(leftMargin, rightMargin, topMargin, bottomMargin);*/ 


    ed6.setTextColor(Color.BLACK); 
    ed6.setBackgroundColor(Color.WHITE); 


    ed6.setText("1"); 
     tr1.addView(ed6); 



    EditText ed7=new EditText(inventory.this); 
    //ed7.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); 
    ed7.setTextColor(Color.BLACK); 
    ed7.setBackgroundColor(Color.WHITE); 
    ed7.setText("2"); 

    tr1.addView(ed7); 

    EditText ed8=new EditText(inventory.this); 
    //ed8.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); 
    ed8.setTextColor(Color.BLACK); 
    ed8.setBackgroundColor(Color.WHITE); 
    ed8.setText("3"); 

    tr1.addView(ed8); 

    EditText ed9=new EditText(inventory.this); 
    //ed9.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); 
    ed9.setTextColor(Color.BLACK); 
    ed9.setBackgroundColor(Color.WHITE); 
    ed9.setText("4"); 

    tr1.addView(ed9); 

    EditText ed10=new EditText(inventory.this); 
    //ed10.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); 
    ed10.setTextColor(Color.BLACK); 
    ed10.setText("5"); 
    ed10.setBackgroundColor(Color.WHITE); 

    tr1.addView(ed10); 

    EditText ed11=new EditText(inventory.this); 
    //ed11.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); 
    ed11.setTextColor(Color.BLACK); 
    ed11.setText("6"); 
    ed11.setBackgroundColor(Color.WHITE); 

    tr1.addView(ed11); 

    t1.addView(tr1); 

उत्तर

4

संपादित करें:
मैं कोशिश करेगा नीचे एक्सएमएल के साथ (आप निश्चित रूप से, आईडी के इत्यादि अपडेट करेंगे)। एक्सएमएल में "जादू" यह है कि यह सभी उपलब्ध चौड़ाई को TextView (और दूसरी पंक्ति पर EditText 'के बीच समान रूप से वितरित करता है)।

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <!-- The first "row" -->  
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 

     <TextView 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="TextView 01" 
      android:id="@+id/textView01" /> 

     <!-- Here you'd add your other five TextView's accordingly --> 

    </LinearLayout> 

    <!-- The second "row" -->  
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 

     <EditText 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="TextView 01" 
      android:id="@+id/editText01" /> 

     <!-- Here you'd add your other five EditText's accordingly --> 

    </LinearLayout> 
</LinearLayout> 

अपने जावा कोड में आप तो की तरह अपने EditText विचारों पहुंच सकता है:

EditText editText01 = (EditText) findViewById(R.id.editText01); 
editText01.setText("1"); 

मैं अब तथ्य यह है कि आप अपने EditText के प्रोग्राम के बनाने की आवश्यकता पर ध्यान नहीं दिया है। क्या आप वास्तव में, वास्तव में उन्हें जावा में बनाने की आवश्यकता है? (क्यों?)

पुराने उत्तर:
आप बस अपने EditText देखने के लिए लेआउट हाशिये मैं तुम्हें LayoutParams चर पर setMargins(left, top, right, bottom) समारोह कॉल इस्तेमाल कर सकते हैं quess सेट करना चाहते हैं।

int left = 6; 
int top = 12; 
int right = 6; 
int bottom = 6; 

TableRow.LayoutParams params = new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
params.setMargins(left, top, right, bottom); 

EditText edXY = new EditText(inventory.this); 
edXY.setLayoutParams(params); 

मेरा सुझाव है कि आप अंततः एक तालिका पंक्ति में छह EditText विचारों के बीच समान रूप से सभी उपलब्ध अंतरिक्ष वितरित करने के लिए चाहते हैं तो आप पोस्ट निम्नलिखित पर एक नजर है: 2-column TableLayout with 50% exactly for each column सब कुछ के

+0

thnx ... लेकिन यह काम नहीं कर रहा – Arun

+0

ठीक है। लक्षण क्या हैं? अपेक्षित- और वास्तविक व्यवहार क्या है? – dbm

+0

असल में मेरे पास एक टेबल layout.in है जिसमें मेरे पास दो टेबल पंक्तियां हैं। पहले टैबलेरो में मेरे पास छह कॉलम हैं और प्रत्येक कॉलम में प्रत्येक टेक्स्टव्यू है। दूसरी पंक्ति में मेरे पास छः cedittext बक्से हैं और मैं चाहता हूं कि दूसरी पंक्ति पहली पंक्ति की तरह हो, जिसका अर्थ है एक ही मामूली लेआउट। मैंने xml.but में पहली पंक्ति बनाई है, लेकिन xml bcoz में दूसरी पंक्ति नहीं बना सकता है, मुझे प्रोग्रामेटिक रूप से ऐसा करना है ... – Arun

8

पहले आपको पता होना चाहिए : Official Android Dev Pages के अनुसार, व्यू (और व्यू से एक टेक्स्ट व्यू व्युत्पन्न) मार्जिन की सेटिंग का समर्थन नहीं करता है, लेकिन व्यू ग्रुप (जैसे LinearLayout, RelativeLayout आदि ...) करते हैं।

तो क्या तुम कर सकते हो है निम्नलिखित:

TableLayout.LayoutParams params = new TableLayout.LayoutParams(); 
params.setMargins(5, 5, 5, 5); 
TextView view = new TextView(this); 
view.setLayoutParams(params); 

यह 5 पिक्सल सभी बच्चों के लिए मार्जिन तय करेगा - मैं इसे करने की कोशिश की और यह मेरे लिए काम किया (ऊर्ध्वाधर संरेखण के साथ एक LinearLayout साथ यद्यपि)। इसे एक शॉट दें और मुझे बताएं कि क्या मैं आगे की मदद कर सकता हूं :)।

चीयर्स, आपके उत्तर के सर के लिए

Ready4Fajir

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