これは興味深いプロジェクトです。Android で行われているのとまったく同じモデル クラスの階層に従うことをお勧めします。各モデル クラスは、作成されたビューに固有です。したがって、たとえば、のEditTextModel
ようなフィールドが含まれますが、単になどを含めることができます。必要なのは、 Google inputType
gsonライブラリと gson 用のカスタム アダプター コードだけです。TextViewModel
text
詳細:
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)
。乾杯... :)