Java 以编程方式生成整个布局+;获取按钮的手柄+;获取文本字段中的文本+;单击存储按钮并在此布局中输入文本
我遇到了一个大问题。我有一个基于JSON响应编程生成的完整布局。因此json响应主要有三种类型 1) 类型:选择(是/否问题) 2) 类型:textfield(上面有文本视图的编辑文本) 3) 类型:文件(图像视图) 下面是我的自定义EditText类:请注意,我可以使用getter获得句柄Java 以编程方式生成整个布局+;获取按钮的手柄+;获取文本字段中的文本+;单击存储按钮并在此布局中输入文本,java,android,android-layout,Java,Android,Android Layout,我遇到了一个大问题。我有一个基于JSON响应编程生成的完整布局。因此json响应主要有三种类型 1) 类型:选择(是/否问题) 2) 类型:textfield(上面有文本视图的编辑文本) 3) 类型:文件(图像视图) 下面是我的自定义EditText类:请注意,我可以使用getter获得句柄 public class CEditText extends LinearLayout { String title; EditText et; public CEditText
public class CEditText extends LinearLayout {
String title;
EditText et;
public CEditText(Context context,String title, String number) {
super(context);
this.title=title;
setOrientation(LinearLayout.VERTICAL);
LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
lp.setMargins(15, 10, 15, 10);
setLayoutParams(lp);
TextView t = new TextView(context);
t.setText(number + " "+title);
t.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
addView(t);
et = new EditText(context);
final LayoutParams lparams = new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);
lparams.setMargins(25, 0, 0, 0);
et.setLayoutParams(lparams);
addView(et);
// TODO Auto-generated constructor stub
}
public EditText getEditText()
{
return et;
}}
因此,基于解析,我将它们添加到布局中,如下所示:
if(ques_type.equals("textarea"))
{
CEditText et = new CEditText(this,
ll.addView(et)
responses.add(new Response(ques_type, ques_name,et.getEditText().getText().toString()));
}
所以这是完全动态的。根据用户的响应,我必须存储它。如果用户在编辑文本中输入文本,我必须存储它,如果用户选择“选择”问题的是/否,我必须存储该响应。存储响应后,我必须将所有这些信息传递到另一个活动,用户在该活动中查看其反馈。我这样处理,但由于数据不持久,这是一个巨大的失败:
- 创建一个response.java类,其成员为question、response和id
- 在使用我的自定义类获得句柄之后,只要用户单击或在上面输入文本,我就使用句柄获得响应。然后我将响应保存在响应对象中,并将其添加到响应的arraylist中,我很快意识到这是不正确的!因为如果我得到一个已创建的自定义视图的句柄并很快执行getText(),我将不会得到任何东西(如上面的代码所示)。它实际上应该是在一个按钮点击事件中,用户在输入所有响应后点击它。因此,为了在一次按钮点击中获得所有这些响应,我需要在按钮点击下有一个句柄/引用,以访问所有这些动态生成的视图,我不知道如何。我非常需要帮助,如果有人能伸出援助之手,我将不胜感激。如果您能告诉我如何将存储的响应传递给其他活动,我将更加感激。先谢谢你
(如果这不是你的意思,请添加更多关于这一切的项目/目的的信息,以便我们可以讨论:)解决了这个问题……谢谢,伙计……我认为这是这个概念上的巨大变化……但我从这个想法开始……非常感谢。。。!