In I/O 2015 Google announced a data binding library for Android. With Data Binding, you create an ongoing link between an element in the user interface and a value. Data Binding is the process that establishes a connection between the application UI and business logic.
In this post we will learn how to integrate recyclerview with android Data Binding.
Step 1 : Enable dataBinding in your module level gradle, here is how your build.gradle should look like.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
apply plugin: 'com.android.application' android { compileSdkVersion 24 buildToolsVersion "23.0.3" defaultConfig { applicationId "com.androidgig.recyclerviewbinding" minSdkVersion 15 targetSdkVersion 24 versionCode 1 versionName "1.0" dataBinding{ enabled true } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:23.4.0' compile 'com.android.support:recyclerview-v7:23.4.0' compile 'com.squareup.picasso:picasso:2.5.2' } |
Continue Reading →
In earlier posts we have already seen
- Working with DataBinding Android
- Image Loading with DataBinding in Android
- Two-way DataBinding in Android
- Setting custom font through XML with DataBinding
Today we will discuss more about Advance DataBinding
Binding Events :
Events will be bound to handler methods directly, like we used to do it with android:onClick. Only change will be we have to take reference of our interface(handler).
Continue Reading →

In the earlier posts we have seen how to use DataBinding, Setting custom font and Image loading. Today we will discuss about two-way DataBinding.
What is Two-way DataBinding?
Till now we have seen how to set values to xml view, but in controls like EditText we need to fetch value. In simple term two-way DataBinding is setting values to that control and fetching it after having some changes.
ObservableField
ObservableField can be used instead of extending BaseObservable class. ObservableFields are self-contained observable objects that have a single field.
Continue Reading →

We have already seen DataBinding Basics and setting fonts through DataBinding in previous tutorials. Today we will take a look at Image loading with databinding .
Step 1 : Define POJO/Model class
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
public class PersonModelClass { String name,designation,image_url; public PersonModelClass(String name, String designation, String image_url) { this.name = name; this.designation = designation; this.image_url = image_url; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDesignation() { return designation; } public void setDesignation(String designation) { this.designation = designation; } public String getImage_url() { return image_url; } public void setImage_url(String image_url) { this.image_url = image_url; } } |
Continue Reading →

Today we will learn about setting custom font through XML with DataBinding. We already know how to set custom font through java code.
|
Typeface custom_font = Typeface.createFromAsset(getAssets(), "fonts/font name.ttf"); tv.setTypeface(custom_font); |
It will set font type for given TextView or other View. But what if we have more number of TextViews/EditTexts throughout the application and that also with multiple custom fonts? We need to declare those number of objects for TextView/EditText as well as for TypeFace declaration. Don’t you think it will increase number of codes? Yes, so other option will come in your mind is to create Custom TextView/EditText. Not a bad idea but we have 15-20 custom fonts throughout the app so creating those number of Custom class would realy be a bad idea. So what is the simplest and easy solution? Answer is DataBinding.
Continue Reading →