2013-05-27 91 views
0

我想創建許多領域一條線,像這樣:如何創建一個包含很多字段的行?

I wnat this

森佩爾闕歐盟clicar EM 「添加行田」 DEVE-SE criar UMA linha abaixo達outra COM口3個坎波斯。

目前我的代碼只插入一個EditText。代碼:

final List<EditText> newFields = new ArrayList<EditText>(); 
    final LinearLayout ll = (LinearLayout)findViewById(R.id.llAddNewFields); 
    Button btnCreateField = (Button)findViewById(R.id.btCreateField); 
    btnCreateField.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) {    
      MY_COUNT++; 
      EditText et = CriaeditText(String.valueOf(MY_COUNT)); 
      newFields.add(et); 
      ll.addView(telefones.get(newFields.size()-1), new ViewGroup.LayoutParams(300,LayoutParams.WRAP_CONTENT));    
     } 
    }); 

方法創建的EditText:

private EditText CriaeditText(String hint) { 
    EditText editText = new EditText(this); 
    editText.setId(Integer.valueOf(hint)); 
    editText.setHint(hint); 
    editText.setTag(hint); 
    return editText; 
} 

要獲得唯一一個EditText上的值:

private List getValuesDynamicField(LinearLayout l, List<EditText> li){ 
    String[] arrValues = null; 
    List data = new ArrayList<String>(); 
    for (int i = 0; i < l.getChildCount(); i++) 
    { 
     if (l.getChildAt(i).getVisibility() != View.GONE) 
     { 
      String p = li.get(i).getText().toString(); 
      if (!p.equals("")) 
      { 
       data.add(p); 
      } 
     } 
    } 
    return data;     
} 

如何適應我的代碼中插入了3場,因爲我想?

+0

爲什麼不能使用表格佈局來達到這個目的? –

+0

我可以使用表格,但我想要的是如何動態地動態插入3行的1行。 – Wesley

回答

1

這裏是動態與三個編輯文本添加一行代碼,

首先,添加一個Table佈局佈局XML file.add設置其爲「tablelayout」。然後在代碼編號,

TableLayout tl = (TableLayout)findViewById(R.id.tablelayout); 

TableRow tr = new TableRow(YourActivity.this); 

EditText edit1=new EditText(YourActivity.this); 
edit1.setPadding(5, 5, 5, 5); 
EditText edit2=new EditText(YourActivity.this); 
edit2.setPadding(5, 5, 5, 5); 
EditText edit3=new EditText(YourActivity.this); 
edit3.setPadding(5, 5, 5, 5); 

tr.addView(edit1); 
tr.addView(edit2); 
tr.addView(edit3); 

tl.addView(tr, new TableLayout.LayoutParams(
      LayoutParams.FILL_PARENT, 
      LayoutParams.WRAP_CONTENT)); 

    } 
+0

有一些更正。請參閱我已編輯的答案 –

+0

如何獲取字段值?在我的代碼之前,我有一個EditText數組,並獲得遍歷這個數組的值。 創建字段的代碼 'List Newfields = new ArrayList()....... CriaeditText EditText et =(String.valueOf(MY_COUNT)); newFields.add(et);'.......... 並拯救我使用的方法'getValuesDynamicField(LinearLayout l List li)'。 現在這個新案例是三個領域一次。一旦3個字段稍後檢索,我將如何關聯數組? – Wesley

+0

你可以得到第一個字段的值,例如:String value = edit1.getText()。toString();對剩餘的字段做同樣的事 –

相關問題