我创建了一个没有太多问题的动态表单,但我需要从表单的字段(控件)中恢复值,但我不知道如何执行此操作。
例如,我有这段代码:
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),因为它在另一个执行环境中。我该如何解决这个问题?任何帮助将不胜感激!!
答案 0 :(得分:1)
您不应将setId用于动态创建的视图,而应使用setTag
和findViewByTag
。
答案 1 :(得分:0)
您可以动态创建一个按钮并在其上设置onClickListener。在侦听器内部,只要您将其设为最终,就可以直接引用EditText(不需要标签或ID)。