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 News
Due 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?