2017-11-23 13 views

答えて

1

もちろん可能です。 @Bindableというフィールドがあり、Observableを実装している場合は、そのフィールドの変更をリスンすることができます。バインド可能なフィールドは、変更されたときに通知する必要があります。例:

public class Item extends BaseObservable { 
    private String name; 
    private int stockCount; 

    @Bindable 
    public String getName() { return name; } 
    public void setName(String name) { 
     this.name = name; 
     notifyPropertyChanged(BR.name); 
    } 

    @Bindable 
    public int getStockCount() { return stockCount; } 
    public void setStockCount(int stockCount) { 
     this.stockCount = stockCount; 
     notifyPropertyChanged(BR.stockCount); 
    } 
} 

このオブジェクトの変更をリッスンすることができます。このデータクラスの基底クラスとしてBaseObservableを使用しました。なぜなら、それは私にとって観測可能性を実装するからです。

public void listenForStockChange(Item item) { 
    item.addOnPropertyChangedCallback(new OnPropertyChangedCallback() { 
     @Override 
     public void onPropertyChanged(Observable sender, int propertyId) { 
      if (propertyId == BR.stockCount) { 
       Item item = (Item) sender; 
       // Do whatever you want when the stock changes 
      } 
     } 
    }); 
} 
+0

チャームのように働いた!どうもありがとうございました :) – melanke

関連する問題