diff --git a/app/src/main/java/io/n0x/android/java_mot_testing/FractionCalculator.java b/app/src/main/java/io/n0x/android/java_mot_testing/FractionCalculator.java index eb9d9ab..b0a904a 100644 --- a/app/src/main/java/io/n0x/android/java_mot_testing/FractionCalculator.java +++ b/app/src/main/java/io/n0x/android/java_mot_testing/FractionCalculator.java @@ -5,55 +5,82 @@ import android.util.Log; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; +import androidx.databinding.BaseObservable; +import androidx.databinding.Bindable; -public class FractionCalculator{ +public class FractionCalculator extends BaseObservable{ private static final String TAG = FractionCalculator.class.getName(); - private int enumLeft; - private int denomLeft; - private int enumRight; - private int denomRight; - public int enumResult; - public int denomResult; + private String denomLeft; + private String enumLeft; + private String denomRight; + private String enumRight; + private String denomResult; + private String enumResult; - - protected void doStuff() { - Log.d(TAG, "FractionCalculator started"); + public FractionCalculator(){ + Log.d(TAG, "new FractionCalculator created"); } - public int getEnumLeft() { - return enumLeft; - } - - public void setEnumLeft(int enumLeft) { - this.enumLeft = enumLeft; - } - - public int getDenomLeft() { + /// #### GETTER AND SETTER #### + @Bindable + public String getDenomLeft() { return denomLeft; } - public void setDenomLeft(int denomLeft) { + public void setDenomLeft(String denomLeft) { this.denomLeft = denomLeft; + notifyPropertyChanged(BR.denomLeft); } - public int getEnumRight() { - return enumRight; + @Bindable + public String getEnumLeft() { + return enumLeft; } - public void setEnumRight(int enumRight) { - this.enumRight = enumRight; + public void setEnumLeft(String enumLeft) { + this.enumLeft = enumLeft; + notifyPropertyChanged(BR.enumLeft); } - public int getDenomRight() { + @Bindable + public String getDenomRight() { return denomRight; } - public void setDenomRight(int denomRight) { + public void setDenomRight(String denomRight) { this.denomRight = denomRight; + notifyPropertyChanged(BR.denomRight); } - // GETTER AND SETTER + @Bindable + public String getEnumRight() { + return enumRight; + } + public void setEnumRight(String enumRight) { + this.enumRight = enumRight; + notifyPropertyChanged(BR.enumRight); + } + + @Bindable + public String getDenomResult() { + return denomResult; + } + + public void setDenomResult(String denomResult) { + this.denomResult = denomResult; + notifyPropertyChanged(BR.denomResult); + } + + @Bindable + public String getEnumResult() { + return enumResult; + } + + public void setEnumResult(String enumResult) { + this.enumResult = enumResult; + notifyPropertyChanged(BR.enumResult); + } } diff --git a/app/src/main/java/io/n0x/android/java_mot_testing/MainActivity.java b/app/src/main/java/io/n0x/android/java_mot_testing/MainActivity.java index c679ed0..865efe6 100644 --- a/app/src/main/java/io/n0x/android/java_mot_testing/MainActivity.java +++ b/app/src/main/java/io/n0x/android/java_mot_testing/MainActivity.java @@ -1,54 +1,52 @@ package io.n0x.android.java_mot_testing; -import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; -import androidx.databinding.BindingAdapter; +import androidx.databinding.DataBindingUtil; + +import io.n0x.android.java_mot_testing.databinding.Ex9DataBindingBinding; public class MainActivity extends AppCompatActivity implements View.OnClickListener { - + // For debugging private static final String TAG = MainActivity.class.getName(); - - - - FractionCalculator calc = new FractionCalculator(); + // Local calculator instance + private FractionCalculator calc; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setContentView(R.layout.ex9_data_binding); - Log.d(TAG, "MainActivity started"); + // create calculator instance + calc = new FractionCalculator(); + // set a value for testing + calc.setEnumResult("0"); + calc.setDenomResult("0"); - // Button Listeners + // Bind instance of FractionCalculator to view + Ex9DataBindingBinding binding = DataBindingUtil.setContentView(this, R.layout.ex9_data_binding); + binding.setCalc(calc); + + // Button Listeners findViewById(R.id.button_add).setOnClickListener(this); - calc.doStuff(); + // Log create action + Log.d(TAG, "MainActivity started"); } @Override public void onClick(View v) { if (v.getId() == R.id.button_add) { + // works (without using bindings) TextView textView = findViewById(R.id.txt_enum_result); - textView.setText("10"); + textView.setText("1234"); - calc.enumResult = 5; - calc.denomResult = 6; - - //calc.setDenomLeft(10); -/* - enumLeft = 1; - denomLeft = 2; - enumRight = 3; - denomRight = 4; - - - //*/ + // work with DataBinding + calc.setDenomLeft("123123123"); } } } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml deleted file mode 100644 index 4fc2444..0000000 --- a/app/src/main/res/layout/activity_main.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/ex9_data_binding.xml b/app/src/main/res/layout/ex9_data_binding.xml index ffbcd75..6f2a305 100644 --- a/app/src/main/res/layout/ex9_data_binding.xml +++ b/app/src/main/res/layout/ex9_data_binding.xml @@ -1,5 +1,6 @@ - @@ -8,7 +9,7 @@ type="io.n0x.android.java_mot_testing.FractionCalculator" /> - @@ -53,43 +54,41 @@ android:id="@+id/txt_equals" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="48dp" + android:layout_marginTop="60dp" android:text="=" android:textSize="34sp" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintHorizontal_bias="0.183" + app:layout_constraintHorizontal_bias="0.181" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/button_div" /> + + - -