我的POJO中有一个HashMap,如下所示:
@Module
public FooImpl1Module {
@Provides
FooInterface provideFooImplementation(Context context) {
return new FooImpl1(context);
}
}
当我用新元素更改朋友的元素时,这可以触发重新绑定视图。但是,如果我只添加和删除class MyPojo extends BaseObservable {
HashMap<String, Friend> friends;
@Bindable
public HashMap<String, Friend> getFriends(){
return friends;
}
public void setFriends(HashMap<String,Friend> newFriends){
friends=newFriends;
notifyPropertyChanged(BR.friends);
}
}
变量中的元素,则不会触发视图中的任何更改。
我知道它没有被触发,因为朋友是一个散列图并且它的指针没有改变。我从不在初始调用后调用friends
,因此它不会触发重新绑定视图。
如何在朋友列表中添加或删除内部setFriends
更改或元素时触发更改?
答案 0 :(得分:2)
您可以对模型使用add remove function并调用notifyPropertyChanged()
来通知视图的更改。
class MyPojo extends BaseObservable {
HashMap<String, Friend> friends;
@Bindable
public HashMap<String, Friend> getFriends(){
return friends;
}
public void setFriends(HashMap<String,Friend> newFriends){
friends=newFriends;
notifyPropertyChanged(BR.friends);
}
public void add(String str,Friend friend)
{
friends.put(str,friend);
notifyPropertyChanged(BR.friends);
}
public void remove(String str,Friend friend)
{
friends.remove(str,friend);
notifyPropertyChanged(BR.friends);
}
}