{"id":5879,"date":"2020-04-02T14:23:19","date_gmt":"2020-04-02T08:53:19","guid":{"rendered":"https:\/\/www.innovationm.com\/blog\/?p=5879"},"modified":"2020-04-02T17:32:55","modified_gmt":"2020-04-02T12:02:55","slug":"how-to-use-data-binding-in-android","status":"publish","type":"post","link":"https:\/\/www.innovationm.com\/blog\/how-to-use-data-binding-in-android\/","title":{"rendered":"How to Use Data Binding in Android"},"content":{"rendered":"<p><strong>What is Data Binding?<\/strong><\/p>\n<p><em><strong>Databinding<\/strong><\/em> is a part of <em><strong>android-architecture<\/strong><\/em> components in an\u00a0<em><strong>android jetpack<\/strong><\/em>. It is a <em><strong>support<\/strong> <\/em>library and It is used to bind <em><strong>UI<\/strong> <\/em>components in the layout to\u00a0data resources in your app. In another word, we can say that Databinding allows you to write expressions that connect variables to the views in the layout.<\/p>\n<p>Data Binding Library automatically creates the classes required to bind the views in the layout with your data objects. Databinding is useful\u00a0for reducing boilerplate code from the source code that is usually written to sync the UI when new data is available. When the data changes its value, the\u00a0elements that are bound to the data reflect changes automatically.<\/p>\n<p><strong>Which types of devices can use data binding?<\/strong><\/p>\n<p>Devices running<em><strong> Android 4.0 (API level 14)<\/strong> <\/em>or higher can be used data binding.<\/p>\n<p><strong>How to use data binding in an android project?<\/strong><\/p>\n<p><strong>Step 1:<br \/>\n<\/strong><br \/>\nIn <em><strong>build.gradle<\/strong><\/em> of the app module<\/p>\n<pre class=\"\">android {\r\n    \r\n    .....\r\n    .....\r\n    \r\n    dataBinding {\r\n        enabled = true\r\n    }\r\n}\r\n<\/pre>\n<p><strong>Step 2:<br \/>\n<\/strong><br \/>\nIn creating a class for binding view<\/p>\n<pre class=\"\">public class Shape {\r\n    public String name;\r\n    public String formula;\r\n\r\n    public Shape(String name, String formula) {\r\n        this.name = name;\r\n        this.formula = formula;\r\n    }\r\n}\r\n<\/pre>\n<p><strong>For Callback:<\/strong><\/p>\n<pre class=\"\">package com.example.databindingdemo;\r\n\r\npublic interface ViewClickListener {\r\n    void onViewClick(Object view, Object model);\r\n}\r\n<\/pre>\n<p><strong>Step 3:<br \/>\n<\/strong><br \/>\nAdd the binding class in <strong>XML<\/strong> layout.<\/p>\n<p>fileName <em><strong>activity_main<\/strong><\/em>.xml<\/p>\n<pre class=\"lang:js decode:true \">&lt;layout xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\r\n    xmlns:tools=\"http:\/\/schemas.android.com\/tools\"&gt;\r\n\r\n    &lt;data&gt;\r\n\r\n        &lt;variable\r\n            name=\"ShapeData\"\r\n            type=\"com.example.databindingdemo.Shape\" \/&gt;\r\n\r\n        \/\/ For clicklistener...\r\n\r\n        &lt;variable\r\n            name=\"viewCallback\"\r\n            type=\"com.example.databindingdemo.ViewClickListener\" \/&gt;\r\n    &lt;\/data&gt;\r\n\r\n    &lt;LinearLayout\r\n        android:layout_width=\"match_parent\"\r\n        android:layout_height=\"match_parent\"\r\n        android:gravity=\"center\"\r\n        android:orientation=\"vertical\"\r\n        tools:context=\".MainActivity\"&gt;\r\n\r\n        &lt;TextView\r\n            android:layout_width=\"wrap_content\"\r\n            android:layout_height=\"wrap_content\"\r\n            android:layout_margin=\"10dp\"\r\n            android:text=\"@{ShapeData.name}\" \/&gt;\r\n\r\n        &lt;TextView\r\n            android:layout_width=\"wrap_content\"\r\n            android:layout_height=\"wrap_content\"\r\n            android:layout_margin=\"10dp\"\r\n            android:text=\"@{ShapeData.formula}\" \/&gt;\r\n\r\n        &lt;Button\r\n            android:layout_width=\"wrap_content\"\r\n            android:layout_height=\"wrap_content\"\r\n            android:onClick=\"@{(view)-&gt; viewCallback.onViewClick(view, ShapeData)}\"\r\n            android:text=\"Click me\" \/&gt;\r\n\r\n    &lt;\/LinearLayout&gt;\r\n\r\n&lt;\/layout&gt;\r\n<\/pre>\n<p><span style=\"font-size: 1rem;\"><br \/>\nAfter that a class is generated automatically in the\u00a0<\/span><em style=\"font-size: 1rem;\"><strong>build\/generated<\/strong><\/em><span style=\"font-size: 1rem;\"> folder inside the app module. The class name will be on the name of xml file name i.e\u00a0If data binding is used in <\/span><em style=\"font-size: 1rem;\"><strong>activity_main.xml<\/strong><\/em><span style=\"font-size: 1rem;\"> then <\/span><em style=\"font-size: 1rem;\"><strong>ActivityMainBinding<\/strong><\/em><span style=\"font-size: 1rem;\"> will be a generated data binding class. In this class, the\u00a0<\/span><em style=\"font-size: 1rem;\"><strong>Method<\/strong><\/em><span style=\"font-size: 1rem;\"> name is generated from the <\/span><em style=\"font-size: 1rem;\"><strong>variable<\/strong><\/em><span style=\"font-size: 1rem;\"> name in the file.<\/span><\/p>\n<p><strong>Step 4:<\/strong><\/p>\n<pre class=\"\">public class MainActivity extends AppCompatActivity {\r\n    private ActivityMainBinding activityMainBinding;\r\n\r\n    @Override\r\n    protected void onCreate(Bundle savedInstanceState) {\r\n        super.onCreate(savedInstanceState);\r\n        activityMainBinding = DataBindingUtil.setContentView(this, R.layout.activity_main);\r\n\r\n        insertDataToUI();\r\n    }\r\n\r\n    private void insertDataToUI() {\r\n        ShapeData shapeData = new ShapeData(\"Name: Rectangle\", \"Formula: lenght * height\");\r\n\r\n        activityMainBinding.setShapeData(shapeData);  \/\/setShapeData is autogenerated method...\r\n\r\n        activityMainBinding.setViewCallback(item);  \/\/setViewCallback is autogenerated method...\r\n    }\r\n\r\n\r\n    ViewClickListener item = new ViewClickListener() {\r\n        @Override\r\n        public void onViewClick(Object view, Object model) {\r\n            ShapeData shape = (ShapeData) model;\r\n            Toast.makeText(MainActivity.this, shape.name + \" and \" + shape.formula, Toast.LENGTH_SHORT).show();\r\n        }\r\n    };\r\n<\/pre>\n<p><strong style=\"font-size: 1rem;\">Binding Recyclerview with adapter<\/strong><\/p>\n<p><strong>Step 1:<\/strong><\/p>\n<p>Add the following dependency in <em><strong>build.gradle<\/strong><\/em><\/p>\n<pre class=\"\">apply plugin: 'com.android.application'\r\n\r\nandroid {\r\n    compileSdkVersion 29\r\n    buildToolsVersion \"29.0.3\"\r\n    defaultConfig {\r\n        applicationId \"com.example.databindingdemo\"\r\n        minSdkVersion 15\r\n        targetSdkVersion 29\r\n        versionCode 1\r\n        versionName \"1.0\"\r\n        testInstrumentationRunner \"androidx.test.runner.AndroidJUnitRunner\"\r\n    }\r\n    buildTypes {\r\n        release {\r\n            minifyEnabled false\r\n            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'\r\n        }\r\n    }\r\n\r\n    dataBinding {\r\n        enabled = true\r\n    }\r\n}\r\n\r\ndependencies {\r\n    implementation fileTree(dir: 'libs', include: ['*.jar'])\r\n    implementation 'androidx.appcompat:appcompat:1.1.0'\r\n    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'\r\n    implementation 'androidx.recyclerview:recyclerview:1.1.0'\r\n    implementation 'androidx.cardview:cardview:1.0.0'\r\n    testImplementation 'junit:junit:4.12'\r\n    androidTestImplementation 'androidx.test.ext:junit:1.1.1'\r\n    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'\r\n}\r\n<\/pre>\n<p>FileName <em><strong>activity_main.xml:<\/strong><\/em><\/p>\n<pre class=\"lang:js decode:true\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\r\n\r\n&lt;layout xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\r\n    xmlns:app=\"http:\/\/schemas.android.com\/apk\/res-auto\"\r\n    xmlns:tools=\"http:\/\/schemas.android.com\/tools\"&gt;\r\n\r\n    &lt;data&gt;\r\n\r\n        &lt;variable\r\n            name=\"itemAdapter\"\r\n            type=\"com.example.databindingdemo.ItemAdpter\" \/&gt;\r\n\r\n    &lt;\/data&gt;\r\n\r\n    &lt;LinearLayout\r\n        android:layout_width=\"match_parent\"\r\n        android:layout_height=\"match_parent\"\r\n        android:gravity=\"center\"\r\n        android:orientation=\"vertical\"\r\n        tools:context=\".MainActivity\"&gt;\r\n\r\n        &lt;androidx.recyclerview.widget.RecyclerView\r\n            android:id=\"@+id\/rvItem\"\r\n            android:layout_width=\"match_parent\"\r\n            android:layout_height=\"match_parent\"\r\n            android:adapter=\"@{itemAdapter}\"\r\n            app:layoutManager=\"androidx.recyclerview.widget.LinearLayoutManager\"\r\n            tools:listitem=\"@layout\/item_model\" \/&gt;\r\n\r\n    &lt;\/LinearLayout&gt;\r\n\r\n&lt;\/layout&gt;\r\n<\/pre>\n<p><strong>Step 2:<\/strong><\/p>\n<p>Create a class for binding view in recycler view adapter.<\/p>\n<pre class=\"\">public class UserDetail {\r\n    public String name;\r\n    public String age;\r\n\r\n    public UserDetail(String name, String age) {\r\n        this.name = name;\r\n        this.age = age;\r\n    }\r\n}\r\n<\/pre>\n<p><strong>Step 3:<\/strong><\/p>\n<p>Create an <em><strong>item_layout<\/strong><\/em> for recycler view item in layout resource.<\/p>\n<pre class=\"lang:js decode:true \">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\r\n\r\n&lt;layout xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\r\n    xmlns:app=\"http:\/\/schemas.android.com\/apk\/res-auto\"&gt;\r\n\r\n    &lt;data&gt;\r\n\r\n        &lt;variable\r\n            name=\"item\"\r\n            type=\"com.example.databindingdemo.UserDetail\" \/&gt;\r\n\r\n        &lt;variable\r\n            name=\"itemClickListener\"\r\n            type=\"com.example.databindingdemo.ViewClickListener\" \/&gt;\r\n\r\n    &lt;\/data&gt;\r\n\r\n    &lt;androidx.cardview.widget.CardView\r\n        android:layout_width=\"match_parent\"\r\n        android:layout_height=\"wrap_content\"\r\n        android:layout_margin=\"10dp\"\r\n        android:orientation=\"vertical\"\r\n        app:cardElevation=\"3dp\"&gt;\r\n\r\n        &lt;LinearLayout\r\n            android:layout_width=\"match_parent\"\r\n            android:layout_height=\"90dp\"\r\n            android:gravity=\"center\"&gt;\r\n\r\n            &lt;TextView\r\n                android:layout_width=\"wrap_content\"\r\n                android:layout_height=\"wrap_content\"\r\n                android:layout_weight=\"1\"\r\n                android:gravity=\"center\"\r\n                android:text=\"@{item.name}\" \/&gt;\r\n\r\n            &lt;TextView\r\n                android:layout_width=\"wrap_content\"\r\n                android:layout_height=\"wrap_content\"\r\n                android:layout_weight=\"1\"\r\n                android:gravity=\"center\"\r\n                android:text=\"@{item.age}\" \/&gt;\r\n\r\n            &lt;Button\r\n                android:layout_width=\"wrap_content\"\r\n                android:layout_height=\"wrap_content\"\r\n                android:onClick=\"@{(view) -&gt; itemClickListener.onViewClick(view, item)}\"\r\n                android:text=\"Click\" \/&gt;\r\n\r\n        &lt;\/LinearLayout&gt;\r\n\r\n    &lt;\/androidx.cardview.widget.CardView&gt;\r\n\r\n&lt;\/layout&gt;\r\n<\/pre>\n<p>After that, a class is generated automatically with the name of item_layout i.e. <em><strong>ItemLayoutBinding.<\/strong><\/em> In this class, all methods are generated from the <em><strong>variable<\/strong><\/em> name in the .xml file.<\/p>\n<p>So there are two methods in <em><strong>ItemLayoutBinding<\/strong><\/em><\/p>\n<p>1. setItem<\/p>\n<p>2. setItemClickListener<\/p>\n<p><strong>Step 4<\/strong>:<\/p>\n<p>Create an adapter for recycler view items.<\/p>\n<pre class=\"\">package com.example.databindingdemo;\r\n\r\nimport android.content.Context;\r\nimport android.view.LayoutInflater;\r\nimport android.view.ViewGroup;\r\nimport android.widget.Toast;\r\n\r\nimport androidx.annotation.NonNull;\r\nimport androidx.databinding.DataBindingUtil;\r\nimport androidx.recyclerview.widget.RecyclerView;\r\n\r\nimport com.example.databindingdemo.databinding.ItemLayoutBinding;\r\n\r\npublic class ItemAdpter extends RecyclerView.Adapter&lt;ItemAdpter.ItemViewHolder&gt; {\r\n    private Context context;\r\n    private String name[] = {\"John\", \"Jelina\", \"Jonathan\", \"Marchel\", \"Richy\"};\r\n    private String age[] = {\"23\", \"26\", \"64\", \"20\", \"22\"};\r\n\r\n    public ItemAdpter(Context context) {\r\n        this.context = context;\r\n    }\r\n\r\n    @NonNull\r\n    @Override\r\n    public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {\r\n        ItemLayoutBinding itemLayoutBinding = DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()), R.layout.item_layout, parent, false);\r\n        return new ItemViewHolder(itemLayoutBinding);\r\n    }\r\n\r\n    @Override\r\n    public void onBindViewHolder(@NonNull final ItemViewHolder holder, final int position) {\r\n        final UserDetail userDetail = new UserDetail(name[position], age[position]);\r\n        holder.bindItem(userDetail);\r\n\r\n        holder.itemLayoutBinding.setItemClickListener(new ViewClickListener() {\r\n            @Override\r\n            public void onViewClick(Object view, Object model) {\r\n                UserDetail user = (UserDetail) model;\r\n                Toast.makeText(context, \"Hello \" + user.name + \", You are \" + user.age + \" year old.\", Toast.LENGTH_SHORT).show();\r\n            }\r\n        });\r\n    }\r\n\r\n    @Override\r\n    public int getItemCount() {\r\n        return name.length;\r\n    }\r\n\r\n    public class ItemViewHolder extends RecyclerView.ViewHolder {\r\n        private ItemLayoutBinding itemLayoutBinding;\r\n\r\n        public ItemViewHolder(@NonNull ItemLayoutBinding itemView) {\r\n            super(itemView.getRoot());\r\n            this.itemLayoutBinding = itemView;\r\n        }\r\n\r\n        public void bindItem(UserDetail item) {\r\n            itemLayoutBinding.setItem(item);\r\n        }\r\n    }\r\n}\r\n<\/pre>\n<p><strong>Step 5:<\/strong><\/p>\n<p>Init Adapter in Activity class<\/p>\n<pre class=\"lang:js decode:true\">package com.example.databindingdemo;\r\n\r\nimport android.os.Bundle;\r\nimport android.widget.Toast;\r\n\r\nimport androidx.appcompat.app.AppCompatActivity;\r\nimport androidx.databinding.DataBindingUtil;\r\n\r\nimport com.example.databindingdemo.databinding.ActivityMainBinding;\r\n\r\npublic class MainActivity extends AppCompatActivity {\r\nprivate ActivityMainBinding activityMainBinding;\r\nprivate ItemAdpter itemAdpter;\r\n\r\n@Override\r\nprotected void onCreate(Bundle savedInstanceState) {\r\nsuper.onCreate(savedInstanceState);\r\nactivityMainBinding = DataBindingUtil.setContentView(this, R.layout.activity_main);\r\n\r\ninitialisedRecyclerView();\r\n}\r\n\r\nprivate void initialisedRecyclerView() {\r\nitemAdpter = new ItemAdpter(this);\r\nactivityMainBinding.setItemAdapter(itemAdpter);\r\n}\r\n}\r\n\r\n<\/pre>\n<p><strong>You can also read our blogs on Android:<\/strong><\/p>\n<p><strong>1:\u00a0<a href=\"https:\/\/www.innovationm.com\/blog\/android-navigation-component-android-jetpack\/\">Android Navigation Component \u2013 Android Jetpack<\/a><\/strong><\/p>\n<p><strong>2:\u00a0<a href=\"https:\/\/www.innovationm.com\/blog\/offline-content-storage-and-sync-with-server-when-modified\/\">Offline Content Storage and Sync with Server when Modified<\/a><\/strong><\/p>\n<p><strong>3:\u00a0<a href=\"https:\/\/www.innovationm.com\/blog\/custom-camera-using-surfaceview\/\">Custom Camera using SurfaceView<\/a><\/strong><\/p>\n<p><strong>4:\u00a0<a href=\"https:\/\/www.innovationm.com\/blog\/capture-image-on-eye-blink\/\">Capture Image on Eye Blink<\/a><\/strong><\/p>\n<p>InnovationM is a globally renowned\u00a0<a href=\"https:\/\/www.innovationm.com\/android-app-development\">Android app development company in\u00a0India<\/a>\u00a0that caters to a strong &amp; secure Android app development, iOS app development, hybrid app development services. Our commitment &amp; engagement towards our target gives us brighter in the world of technology and has led us to establish success stories consecutively which makes us the best\u00a0<a href=\"https:\/\/www.innovationm.com\/ios-app-development\">iOS app development company in India<\/a>. We are also rated as the <a href=\"https:\/\/www.innovationm.com\/mobile-app-development-company\">best Mobile app development company in India<\/a>.<\/p>\n<p>Thanks for giving your valuable time. Keep reading and keep learning &#x1f642;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>What is Data Binding? Databinding is a part of android-architecture components in an\u00a0android jetpack. It is a support library and It is used to bind UI components in the layout to\u00a0data resources in your app. In another word, we can say that Databinding allows you to write expressions that connect variables to the views in [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":5891,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,71],"tags":[159,481,480,479,483,478,477,482],"class_list":["post-5879","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android","category-mobile","tag-android","tag-android-binding","tag-android-data-binding-example","tag-android-databinding","tag-android-working-with-databinding","tag-data-binding-in-android","tag-how-to-use-data-binding-in-android","tag-using-data-binding-in-android"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How to Use Data Binding in Android - InnovationM - Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.innovationm.com\/blog\/how-to-use-data-binding-in-android\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Use Data Binding in Android - InnovationM - Blog\" \/>\n<meta property=\"og:description\" content=\"What is Data Binding? Databinding is a part of android-architecture components in an\u00a0android jetpack. It is a support library and It is used to bind UI components in the layout to\u00a0data resources in your app. In another word, we can say that Databinding allows you to write expressions that connect variables to the views in [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.innovationm.com\/blog\/how-to-use-data-binding-in-android\/\" \/>\n<meta property=\"og:site_name\" content=\"InnovationM - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-04-02T08:53:19+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-04-02T12:02:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/04\/Data-binding.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1141\" \/>\n\t<meta property=\"og:image:height\" content=\"634\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"InnovationM Admin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"InnovationM Admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/how-to-use-data-binding-in-android\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/how-to-use-data-binding-in-android\\\/\"},\"author\":{\"name\":\"InnovationM Admin\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"headline\":\"How to Use Data Binding in Android\",\"datePublished\":\"2020-04-02T08:53:19+00:00\",\"dateModified\":\"2020-04-02T12:02:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/how-to-use-data-binding-in-android\\\/\"},\"wordCount\":462,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/how-to-use-data-binding-in-android\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/04\\\/Data-binding.png\",\"keywords\":[\"Android\",\"android binding\",\"android data binding example\",\"android databinding\",\"Android working with DataBinding\",\"Data Binding in Android\",\"How to Use Data Binding in Android\",\"Using data binding in Android\"],\"articleSection\":[\"Android\",\"Mobile\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/how-to-use-data-binding-in-android\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/how-to-use-data-binding-in-android\\\/\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/how-to-use-data-binding-in-android\\\/\",\"name\":\"How to Use Data Binding in Android - InnovationM - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/how-to-use-data-binding-in-android\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/how-to-use-data-binding-in-android\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/04\\\/Data-binding.png\",\"datePublished\":\"2020-04-02T08:53:19+00:00\",\"dateModified\":\"2020-04-02T12:02:55+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/how-to-use-data-binding-in-android\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/how-to-use-data-binding-in-android\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/how-to-use-data-binding-in-android\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/04\\\/Data-binding.png\",\"contentUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/04\\\/Data-binding.png\",\"width\":1141,\"height\":634,\"caption\":\"How to Use data Binding in Android\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/how-to-use-data-binding-in-android\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Use Data Binding in Android\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\",\"name\":\"InnovationM - Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\",\"name\":\"InnovationM Admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"caption\":\"InnovationM Admin\"},\"sameAs\":[\"http:\\\/\\\/www.innovationm.com\\\/\"],\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/author\\\/innovationmadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Use Data Binding in Android - InnovationM - Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.innovationm.com\/blog\/how-to-use-data-binding-in-android\/","og_locale":"en_US","og_type":"article","og_title":"How to Use Data Binding in Android - InnovationM - Blog","og_description":"What is Data Binding? Databinding is a part of android-architecture components in an\u00a0android jetpack. It is a support library and It is used to bind UI components in the layout to\u00a0data resources in your app. In another word, we can say that Databinding allows you to write expressions that connect variables to the views in [&hellip;]","og_url":"https:\/\/www.innovationm.com\/blog\/how-to-use-data-binding-in-android\/","og_site_name":"InnovationM - Blog","article_published_time":"2020-04-02T08:53:19+00:00","article_modified_time":"2020-04-02T12:02:55+00:00","og_image":[{"width":1141,"height":634,"url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/04\/Data-binding.png","type":"image\/png"}],"author":"InnovationM Admin","twitter_misc":{"Written by":"InnovationM Admin","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.innovationm.com\/blog\/how-to-use-data-binding-in-android\/#article","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/how-to-use-data-binding-in-android\/"},"author":{"name":"InnovationM Admin","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"headline":"How to Use Data Binding in Android","datePublished":"2020-04-02T08:53:19+00:00","dateModified":"2020-04-02T12:02:55+00:00","mainEntityOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/how-to-use-data-binding-in-android\/"},"wordCount":462,"commentCount":0,"image":{"@id":"https:\/\/www.innovationm.com\/blog\/how-to-use-data-binding-in-android\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/04\/Data-binding.png","keywords":["Android","android binding","android data binding example","android databinding","Android working with DataBinding","Data Binding in Android","How to Use Data Binding in Android","Using data binding in Android"],"articleSection":["Android","Mobile"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.innovationm.com\/blog\/how-to-use-data-binding-in-android\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.innovationm.com\/blog\/how-to-use-data-binding-in-android\/","url":"https:\/\/www.innovationm.com\/blog\/how-to-use-data-binding-in-android\/","name":"How to Use Data Binding in Android - InnovationM - Blog","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/how-to-use-data-binding-in-android\/#primaryimage"},"image":{"@id":"https:\/\/www.innovationm.com\/blog\/how-to-use-data-binding-in-android\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/04\/Data-binding.png","datePublished":"2020-04-02T08:53:19+00:00","dateModified":"2020-04-02T12:02:55+00:00","author":{"@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"breadcrumb":{"@id":"https:\/\/www.innovationm.com\/blog\/how-to-use-data-binding-in-android\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.innovationm.com\/blog\/how-to-use-data-binding-in-android\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.innovationm.com\/blog\/how-to-use-data-binding-in-android\/#primaryimage","url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/04\/Data-binding.png","contentUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/04\/Data-binding.png","width":1141,"height":634,"caption":"How to Use data Binding in Android"},{"@type":"BreadcrumbList","@id":"https:\/\/www.innovationm.com\/blog\/how-to-use-data-binding-in-android\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.innovationm.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Use Data Binding in Android"}]},{"@type":"WebSite","@id":"https:\/\/www.innovationm.com\/blog\/#website","url":"https:\/\/www.innovationm.com\/blog\/","name":"InnovationM - Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.innovationm.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed","name":"InnovationM Admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","caption":"InnovationM Admin"},"sameAs":["http:\/\/www.innovationm.com\/"],"url":"https:\/\/www.innovationm.com\/blog\/author\/innovationmadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/5879","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/comments?post=5879"}],"version-history":[{"count":0,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/5879\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media\/5891"}],"wp:attachment":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media?parent=5879"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/categories?post=5879"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/tags?post=5879"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}