El enlace de datos de Android en la clase interna no actualiza TextView
La aplicación se ejecuta pero elTextView
no se actualiza aquí es el código relevante.
activity_picker_dashboard.xml
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- Top header -->
<include layout="@layout/layout_header" /> This layout has databinding
<!-- DrawerLayout -->
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@color/gray"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/toolbar">
.....
Aquí está layout_header.xml
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="profilePayload"
type="myms.models.ProfileResponse.Payload"/>
</data>
<Toolbar
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:padding="8dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white">
<android.support.constraint.ConstraintLayout
android:id="@+id/header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:layout_width="180dp"
android:layout_height="60dp"
android:adjustViewBounds="true"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:src="@drawable/logo_color"/>
<TextView
android:id="@+id/username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:text="@{profilePayload.firstName}" Here it is
android:textColor="@color/red"
android:textSize="18sp"
app:layout_constraintBottom_toTopOf="@+id/role"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed" />
...............
</Toolbar>
</layout>
Aquí está mi modelo ProfileResponse.java
public class ProfileResponse
{
public Payload getPayLoad() {
return payLoad;
}
@SerializedName("Payload")
private Payload payLoad;
public static class Payload
{
public String getProfileId() {
return profileId;
}
public String getUserId() {
return userId;
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
@SerializedName("ProfileId")
private String profileId;
@SerializedName("UserId")
private String userId;
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
@SerializedName("FirstName")
private String firstName;
@SerializedName("LastName")
private String lastName;
}
}
Y finalmente esta es mi actividad
public class PickerDashboardActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_picker_dashboard);
LayoutHeaderBinding binding = LayoutHeaderBinding.inflate(getLayoutInflater());
ProfileResponse.Payload profilePayload = new ProfileResponse.Payload();
profilePayload.setFirstName("Test");
binding.setProfilePayload(profilePayload);
ButterKnife.bind(this);
}
Por favor sugiera una solución. He estado intentando esto por bastante tiempo ahora. P.S: También estoy usando un cuchillo de mantequilla.