1
我有Android綁定庫的問題。當我使用屬性更改'_all'時,一切正常,但是當我指定字段時,它不起作用。 我的問題是爲什麼? :)Android綁定 - 屬性更改
public class Person extends BaseObservable{
private String name;
@Bindable
public String getName(){
return this.name;
}
//IT WORKS
public void setName(String name){
this.name = name;
notifyPropertyChanged(BR._all); //<- difference
}
//IT DONT WORK
public void setSurname(String name){
this.name = name;
notifyPropertyChanged(BR.name); //<- difference
}
我的XML文件:
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="person"
type="com.myapp.Person" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{person.getName()}" />
</LinearLayout>
</layout>
好的,我注意到了,但是如果我想使用getter? 更改值 - >返回格式(「您的名字是%s」,名稱)的示例 唯一的方法是使用通知所有? – linean
在這種特殊情況下,您需要使用字符串格式:'@ {@ string/yourName(name)}'。但是如果你傳遞參數,它也會使方法無效,所以你可以使用:'@ {MyStringFormatter.yourName(user.name)}' –