Mapping to custom objects
Using the commodity class MBFieldsMapping which fields of your custom class should be mapped with the fields of the MBSection you named on your Project dashboard. Your destination object should at least override getters and setters and if you wish to obtain simple values or MBurger object values for:
Images -> First
MBImage(only an object, not an array)Media & Documents -> First
MBFile(only an object, not an array)Addresses -> Latitude, longitude or textual address
You will find all possible simple data inside the MBMappingArgs class.
For example, for a simple News class with title and MBurger image
class News: Serializable {
var title: String?
var img: MBImage?
}Can be mapped this way:
val fieldsMapping = MBFieldsMapping()
//”ttl” is my custom object element, “Title” is the name of the Element we want to map from the section
fieldsMapping.putMap(“ttl”, “Title”)
//”img” is my custom object element, “Images” is the name of the Element we want to map from the section, we add “imageArguments” which tells to take only the first image from the array.
val imageArguments = arrayOf(MBMappingArgs.mapping_first_image_media)
fieldsMapping.putMap(“img”, “Images”, imageArguments)
//If getSimpleValues was “true” we would not have a single MBImage but the basic value, so the URL of the image and News class “img” should be a String
val getSimpleValues = false;
val nws = MBurgerMapper.mapToCustomObject(nkSection, fieldsMapping, News(), getSimpleValues) as NewsDue to the new nature of Android 9 this functionaity could give you light greylist logcat messages because it uses reflections.
For now on, there should be no problem, but this functionality may change with new Android releases.
Last updated
Was this helpful?