有没有办法根据web服务动态添加编辑文本?

时间:2013-10-17 13:50:58

标签: android web-services android-layout

我有一个web服务,根据该webservice,我获得了诸如姓名,电子邮件等数据。数据会根据Web服务而变化。一些web服务可能只有两个字段,一些可能有3个字段。所以我的问题是如何根据webservice动态添加EditText字段?

2 个答案:

答案 0 :(得分:0)

我接近这个的方法是使用具有最大字段数的布局。因此,如果有3个,您只需查看Web服务返回的内容,并根据您的需要更改字段的可见性。

您可以使用View类的setVisibility(int)方法执行此操作。

答案 1 :(得分:0)

您可以拥有一个存储field labelEditText的类,该字段负责此字段的捕获值,您还需要一个ids xml文件来存储该id的{ {1}}使用字段名称来检索捕获的值,然后,当您解析所有服务响应并创建所有这些对象时,您可以在那里进行迭代并调用editText创建者方法,看起来像这个。

EditText

}

你的class EditTextResponse extends EditText{ private String label; private EditText edit; public EditTextResponse(Context context,String label) { super(context); this.label =label; init(); } private void init(){ this.setId( getReflectedId() ); } private int getReflectedId(){ Class<?> ids = R.id.class; try{ Field field = ids.getField( label ); return field.getInt(null); }catch( Exception ex ){ ex.printStackTrace(); } return android.R.id.text1; } 看起来像这样。

ids xml

然后在你的活动中。您可以迭代这些<?xml version="1.0" encoding="utf-8"?> <resources> <item name="email" type="id"/> <item name="name" type="id"/> <item name="other" type="id"/> </resources> 个对象,然后转到附加视图。

相关问题