【问题标题】:How to create a line with many fields?如何创建具有多个字段的行?
【发布时间】:2013-05-27 03:38:56
【问题描述】:

我想创建一个包含许多字段的行,如下所示:

Sempre que eu clicar em "Add line fields" deve-se criar uma linha abaixo da outra com os 3 campos。

目前我的代码只插入一个 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 个字段?

【问题讨论】:

  • 为什么不能为此使用表格布局?
  • 我可以使用表格,但我想要的是如何动态插入1行和3个字段。

标签: android dynamic field


【解决方案1】:

这里是用三个编辑文本动态添加行的代码,

首先你将一个表格布局添加到你的布局xml文件中。添加它的id设置为“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));

    }

【讨论】:

  • 我如何获取字段值​​​?之前在我的代码中,我有一个 EditText 数组并得到遍历这个数组的值。创建字段的代码List &lt;EditText&gt; Newfields &lt;EditText&gt; = new ArrayList () ....... CriaeditText EditText et = (String.valueOf (MY_COUNT)); newFields.add (et); .... 并拯救我使用getValuesDynamicField (LinearLayout l List &lt;EditText&gt; li) 的方法。现在这个新案例同时是三个领域。一旦 3 个字段稍后检索,我将如何关联一个数组?
  • 你可以得到第一个字段的值,如 String value=edit1.getText().toString();对剩余字段执行相同操作
  • 是的,但我可以创建很多字段。可以是 10 行,每行 3 个字段,因为这样可以很容易地检索每行的值。根据目前具有 getValuesDynamicField 但仅针对一个字段的函数,我的问题是如何创建一个数组来传递具有 3 个字段的每个行组的值。
猜你喜欢
  • 2015-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多