Wednesday, September 11, 2024

A Simple Data Binding Example

 Step-1: Enable data binding to android project ADD below line to your app level build.gradle file.

android {

    buildFeatures {

        dataBinding = true

    }


Setp-2: Add all your XML layout design inside this <layout></layout> tag

<?xml version="1.0" encoding="utf-8"?>

<layout

    xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:app="http://schemas.android.com/apk/res-auto"

    xmlns:tools="http://schemas.android.com/tools">

<androidx.constraintlayout.widget.ConstraintLayout

    android:id="@+id/main"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    tools:context=".MainActivity">


    <TextView

        android:id="@+id/greeting_text_view"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="@string/insert_you_name_here"

        android:textSize="30sp"

        android:textStyle="bold"

        android:typeface="sans"

        app:layout_constraintBottom_toBottomOf="parent"

        app:layout_constraintHorizontal_bias="0.532"

        app:layout_constraintLeft_toLeftOf="parent"

        app:layout_constraintRight_toRightOf="parent"

        app:layout_constraintTop_toTopOf="parent"

        app:layout_constraintVertical_bias="0.175" />


    <EditText

        android:id="@+id/name_edit_text"

        android:layout_width="0dp"

        android:layout_height="wrap_content"

        android:layout_margin="20dp"

        android:ems="10"

        android:hint="@string/insert_you_name_here"

        android:inputType="textPersonName"

        android:textSize="30sp"

        app:layout_constraintBottom_toBottomOf="parent"

        app:layout_constraintEnd_toEndOf="parent"

        app:layout_constraintStart_toStartOf="parent"

        app:layout_constraintTop_toBottomOf="@+id/greeting_text_view"

        app:layout_constraintVertical_bias="0.126" />


    <Button

        android:id="@+id/submit_button"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="@string/submit"

        android:textSize="30sp"

        app:layout_constraintBottom_toBottomOf="parent"

        app:layout_constraintEnd_toEndOf="parent"

        app:layout_constraintHorizontal_bias="0.498"

        app:layout_constraintStart_toStartOf="parent"

        app:layout_constraintTop_toTopOf="parent"

        app:layout_constraintVertical_bias="0.613" />


</androidx.constraintlayout.widget.ConstraintLayout>

</layout>


Step-3: Bind your XML layout to MainActivity.java


import android.os.Bundle

import android.widget.Button

import android.widget.EditText

import android.widget.TextView

import androidx.activity.enableEdgeToEdge

import androidx.appcompat.app.AppCompatActivity

import androidx.core.view.ViewCompat

import androidx.core.view.WindowInsetsCompat

import androidx.databinding.DataBindingUtil

import com.anushka.bindingdemo1.databinding.ActivityMainBinding


class MainActivity : AppCompatActivity() {

    private lateinit var binding : ActivityMainBinding

    override fun onCreate(savedInstanceState: Bundle?) {

        super.onCreate(savedInstanceState)

        enableEdgeToEdge()

//        setContentView(R.layout.activity_main)

        binding = DataBindingUtil.setContentView(this,R.layout.activity_main)

        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->

            val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())

            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)

            insets

        }

//        val button = findViewById<Button>(R.id.submit_button)

//        button.setOnClickListener {

//            displayGreeting()

//        }

        binding.submitButton.setOnClickListener {

            displayGreeting()

        }

    }

    private fun displayGreeting() {

//        val messageView = findViewById<TextView>(R.id.greeting_text_view)

//        val nameText = findViewById<EditText>(R.id.name_edit_text)

//

//        messageView.text = "Hello! "+ nameText.text

        binding.apply {

            greetingTextView.text = "Hello! "+ nameEditText.text

        }

    }


No comments:

Post a Comment

A Simple Data Binding Example

  Step-1: Enable data binding to android project ADD below line to your app level build.gradle file. android {     buildFeatures {        ...