/** * @param jsonObject : json object * @param parent : parent viewGroup * @param holderClass : class that will be created as an holder and attached as a tag in the View, If contains HashMap ids will replaced with idsMap * @return the view that created */ public static View createView(Context context, JSONObject jsonObject, ViewGroup parent, Type holderClass) { if (jsonObject == null) { return(null); } JavaDictionary <string, int> ids = new JavaDictionary <string, int>(); View container = createViewInternal(context, jsonObject, parent, ids); if (container == null) { return(null); } if (container.GetTag(INTERNAL_TAG_ID) != null) { DynamicHelper.applyLayoutProperties(container, (JavaList <DynamicProperty>)container.GetTag(INTERNAL_TAG_ID), parent, ids); } /* clear tag from properties */ container.Tag = (INTERNAL_TAG_ID); if (holderClass != null) { try { object holder = holderClass.Assembly.CreateInstance(holderClass.FullName);//.GetConstructor().NewInstance(); DynamicHelper.parseDynamicView(holder, container, ids); container.Tag = (Java.Lang.Object)(holder); } catch (InstantiationException e) { e.PrintStackTrace(); } catch (IllegalAccessException e) { e.PrintStackTrace(); } catch (NoSuchMethodException e) { e.PrintStackTrace(); } catch (InvocationTargetException e) { e.PrintStackTrace(); } } return(container); }