0

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

例如,我有这段代码:

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),因为它在另一个执行环境中。我该如何解决这个问题?任何帮助,将不胜感激!!

4

2 回答 2

1

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

于 2012-11-15T16:08:22.037 回答
0

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

于 2012-11-16T11:57:21.073 回答