【问题标题】:How I get each of edittext value when I addView the edittext to form?当我添加查看要形成的edittext时如何获取每个edittext值?
【发布时间】:2018-11-09 11:22:24
【问题描述】:

我有一个按钮,当我单击它时,表单会在表单上添加更多 edittext(我正在使用 addView)。当我需要“添加更多项目”时,它就像一个订单。

当我点击保存按钮时,如何获取所有的 edittext 值?

View moreItem = inflater.inflate(R.layout.add_item, (LinearLayout) findViewById(R.id.linearItem), false);
final LinearLayout linearForm = (LinearLayout)findViewById(R.id.linearItem);
linearForm.addView(moreItem);

编辑文本在 R.layout.add_item 内

【问题讨论】:

  • 你能发布你的代码吗,你是如何使用 addView 添加editext的?
  • 我猜,您必须将 Tag 分配给您的 editext 并在需要时获取这些值。参考stackoverflow.com/questions/41283731/…
  • 你解决了这个问题吗?如果是,请回答你自己的问题,这将对其他人有所帮助。

标签: android android-edittext


【解决方案1】:

当您将editTextaddView() 添加到父视图时,您可以通过运行循环来获取所有editText 值。在提交按钮clickListener里面,添加如下代码:

int count = parentLayout.getChildCount();
String[] editTextValues = new String[count];
    for (int i = 0; i < count; i++) {
        View view = parentlayout.getChildAt(i);          
        if (view instanceof EditText) {
            EditText edittext = (EditText) view;
            editTextValues[i] = editText.getText().toString();
        }
    }

【讨论】:

  • 抱歉,我们不应该得到这样的值。假设他添加了 5..10 editext 并且所有字段都包含一些文本,那么他将如何区分这些文本消息。这就是我向他要代码的原因,我们可以在其中看到他如何使用 addView()
  • 他可以使用HashMap & 使用键值来区分每个editTexts。让我们看看op的要求是什么。
【解决方案2】:

感谢所有回复。

我创建了一个clickcount 变量来计算每次点击添加更多按钮的次数。 我已经用

解决了这个问题
editText.setTag("et"+clickcount); //When I add more button

然后做一个for循环

for (int i = 1; i <= clickcount; i++) {
   editText= resultView.findViewWithTag("et"+i);
   String text= editText.getText().toString();
}

感谢 jitesh mohite 使用 getTag() 提出的想法

【讨论】:

    【解决方案3】:
    declare  array list
    

    最终列表edittext = new ArrayList(); 按钮添加按钮; 将每个值存储在列表中并检索您想要的位置

          addbutton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) { 
             final LinearLayout linearLayout = new LinearLayout(classname.this);
                linearLayout.setOrientation(LinearLayout.HORIZONTAL);
                final EditText edt1 = new EditText(classname.this);
                edt.setInputType(InputType.TYPE_CLASS_NUMBER);
           edittext.add(edt2);
    

    }}

    【讨论】:

    • 在xml文件中声明线性布局为动态创建视图的容器,并在按钮点击功能中为容器添加线性布局
    猜你喜欢
    • 1970-01-01
    • 2017-12-14
    • 1970-01-01
    • 2014-09-01
    • 2021-12-17
    • 1970-01-01
    • 2021-03-12
    • 2023-03-14
    • 1970-01-01
    相关资源
    最近更新 更多