2013-05-27 32 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();对剩余的字段做同样的事 –

相关问题