gpt4 book ai didi

php - 使用 JSON 模式生成动态表单

转载 作者:行者123 更新时间:2023-11-29 01:49:24 26 4
gpt4 key购买 nike

我目前正在开发一个 android 应用程序,它根据 php 服务器以 json 格式提供的模式动态生成输入字段。我知道如何在 android 中动态创建字段。

我想得到一些关于 json 模式格式的建议,因为有很多输入类型,比如 EditText、Spinner、RadioGroup、RadioButton、CheckBox、DatePicker、TimePicker、Camera Image、User Signature 等。它们可能有默认值, Spinners 有多个值,DatePicker 和 TimePicker 有最大和最小限制,EditText 输入类型可能不同,比如数字、小数、文本、多行等,

关于 json 模式的一些建议会更有帮助,因为我不太喜欢 json,而且它在 android 中应该也很容易解析。

最佳答案

这是一个有趣的项目。我建议您在模型类中遵循与 Android 完全相同的层次结构。每个模型类都将特定于其所针对的 View 。因此,例如 EditTextModel 将包含 inputType 等字段,而 TextViewModel 可能仅包含 text 等。现在您只需要是google gson library和 gson 的一些自定义适配器代码。

详细信息:json 可能是这样的。

{
"views": [
{
"class": "com.vj.TextViewModel",
"properties": {
"text": "hello world",
"textColor": "#000000"
}
},
{
"class": "com.vj.EditTextModel",
"properties": {
"inputType": "number",
"textSize": 20
}
}
]
}

使用 TextViewModel 类:

public class TextViewModel implements Viewable{
String text;
String textColor;

@Override
public View getView(Context context){
// generate and return view
return view;
}
}

和 EditTextModel 类:

public class EditTextModel implements Viewable{
String inputType;
int textSize;

@Override
public View getView(Context context){
// generate and return view
return view;
}
}

在哪里

public interface Viewable{
public View getView(Context context);
}

就通用 json 序列化/反序列化和适配器代码而言,请非常仔细地观察和检查此代码,因为它完全符合您对我上面生成的类似模型的要求。 https://stackoverflow.com/a/8683689/1112882

在您的 json 被解析并且您的 ArrayList 或 Collection of Viewable 准备就绪后,只需迭代并调用 getView(context)。干杯...:)

关于php - 使用 JSON 模式生成动态表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19202181/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com