L'application s'exécute mais le TextView
ne reçoit pas la mise à jour ici est le code approprié.Liaison de données Android sur classe interne ne pas mettre à jour TextView
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">
.....
Voici 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>
Voici mon modèle 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;
}
}
Et enfin voici mon activité
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);
}
Veuillez suggérer une solution. J'essaye ceci depuis un certain temps maintenant. P.S: J'utilise aussi un couteau à beurre.
Comment voulez-vous dire "' TextView' ne se met pas à jour "? Veuillez expliquer ce que vous essayez d'accomplir. – arcticwhite
J'ai posté un code de référence complet et une explication. J'ai lié mon textview avec le modèle et je règle le texte sur le modèle via l'instance de liaison mais aucun effet. –
Appelez 'profilePayload.setFirstName' après' binding.setProfilePayload'. ButterKnife est à mon humble avis pas nécessaire si vous utilisez la liaison de données. – artkoenig