Ich bin ein Anfänger Programmierer.android Datenbindung funktioniert nicht
i Praxis android Datenbindung Beispiel tue ..
es funktioniert, wie
Benutzerklasse ‚mag Wert‘ erhöhen, wenn Image klicken.
aber es funktioniert nicht, ich weiß nicht,
Grund ist, warum?
wie kann ich es beheben?
wenn Bewegung onClickLike() -Methode von Haupt zu Benutzerklasse und Quelle beheben, ist es gut funktioniert.
Benutzerklasse
public class User {
//
public ObservableField<String> name = new ObservableField<>();
public ObservableInt age = new ObservableInt();
public ObservableInt likes = new ObservableInt();
public User(String nameString, int ageInt) {
name.set(nameString);
age.set(ageInt);
likes.set(0);
}
}
MainActivity
public class MainActivity extends AppCompatActivity {
User user;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
user = new User("john", 29);
binding.setUser(user);
String date = (String) DateFormat.format("yyyy/MM/dd kk:mm:ss", Calendar.getInstance());
binding.textTime.setText(date);
}
public void onClickLike(View view) { <------------ doesn't work
user.likes.set(user.likes.get() + 1);
}
}
activity_main.xml
<?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"
tools:context="com.example.john.bindingexample.MainActivity">
<data>
<variable
name="user"
type="com.example.john.bindingexample.User"/>
<variable
name="main"
type="com.example.john.bindingexample.MainActivity"/>
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<TextView
android:id="@+id/text_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:text="profile"
android:textAppearance="@style/TextAppearance.AppCompat.Large"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:text="name:"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:text="@{user.name}"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:text="age:"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:text="@{String.valueOf(user.age)}"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:text="LIKE:"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:text="@{String.valueOf(user.likes)}"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"/>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="@{main::onClickLike}" <------------ doesn't work
android:src="@drawable/ic_thumb_up_black_36dp"
/>
</LinearLayout>
</layout>
omg, ..... danke sir ... sehr viel !! – Jays