在Android中检索动态表单的值

时间:2012-11-15 16:04:47

标签: android listener dynamically-generated

我创建了一个没有太多问题的动态表单,但我需要从表单的字段(控件)中恢复值,但我不知道如何执行此操作。

例如,我有这段代码:

if(tipoP.equals("TEXTAREA")){
   EditText ta = new EditText(this);
   ta.setId(i);
   LayoutParams params3 = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, (float) 0.3);
   params3.setMargins(20, 0, 20, 0);
   ta.setLayoutParams(params3);
   ta.setLines(3);
   ta.setRawInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE);
   ll.addView(ta);
}

如何添加捕获EditText文本的侦听器并将其放在Vector变量中?

我试过了:

ta.setOnClickListener(new OnClickListener(){
   public void onClick(View view){
       EditText t = (EditText) findViewById(i);
       res.add(t.getText().toString);
   }
});

但是我没有得到id(变量i),因为它在另一个执行环境中。我该如何解决这个问题?任何帮助将不胜感激!!

2 个答案:

答案 0 :(得分:1)

您不应将setId用于动态创建的视图,而应使用setTagfindViewByTag

答案 1 :(得分:0)

您可以动态创建一个按钮并在其上设置onClickListener。在侦听器内部,只要您将其设为最终,就可以直接引用EditText(不需要标签或ID)。