Android的addOnPropertyChangedCallback无法使用新值数据更新类旧数据。
创始人
2024-10-07 03:01:17
0

在Android中,使用Data Binding库时,可以使用addOnPropertyChangedCallback方法来监听数据变化。但是,这个方法在更新类的旧数据时可能会出现问题,因为它不能自动使用新值数据来更新旧数据。为了解决这个问题,可以使用ObservableField来包装旧数据,并使用addOnPropertyChangedCallback方法监听包装数据的变化。下面是一个示例代码:

public class MainActivity extends AppCompatActivity {
    private User user = new User();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
        binding.setUser(user);

        // 创建一个ObservableField对象,用于包装旧数据
        ObservableField oldName = new ObservableField<>(user.getName());

        // 监听包装数据的变化
        oldName.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
            @Override
            public void onPropertyChanged(Observable sender, int propertyId) {
                // 获取新的值,并更新旧数据
                user.setName(oldName.get());
            }
        });

        // 修改旧数据
        oldName.set("New Name");

        // 更新UI
        binding.invalidateAll();
    }
}

在这个示例中,我们使用ObservableField来包装旧数据user.getName(),并将它传递给addOnPropertyChangedCallback方法。当旧数据发生变化时,可以通过调用oldName.get()获取新的值,并通过user.setName()方法更新旧数据。然后,我们调用binding.invalidateAll()方法来更新UI。

相关内容

热门资讯

玩家必看科普!wejoker辅... 玩家必看科普!wejoker辅助软件价格,wepoker底牌透视脚本,力荐教程(有挂技巧)是由北京得...
透视辅助!pokemomo辅助... 透视辅助!pokemomo辅助工具(透视)一贯有挂(详细辅助必胜教程);1、很好的工具软件,可以解锁...
热点推荐!wepoker-h5... 热点推荐!wepoker-h5下载,wejoker辅助软件价格,可靠教程(有挂教程);科技安装教程;...
透视新版!wpk插件(透视)确... 透视新版!wpk插件(透视)确实真的是有挂(详细辅助wepoke教程)1、机器人多个强度级别选择2、...
今日百科!wepoker辅助器... 1、今日百科!wepoker辅助器下载,wepoker透视器免费,解密教程(有挂神器)。2、wepo...
透视挂透视!德普之星透视辅助软... 透视挂透视!德普之星透视辅助软件激活码(透视)都是是真的有挂(详细辅助黑科技教程)在进入德普之星透视...
一分钟揭秘!we poker辅... 一分钟揭秘!we poker辅助器v3.3,aapoker透视脚本入口,教你教程(有挂教程)1、点击...
透视ai代打!破解辅助插件we... 透视ai代打!破解辅助插件wepoker(透视)其实是有挂(详细辅助线上教程);辅助器中分为三种模型...
解密关于!werplan外挂,... 解密关于!werplan外挂,wepoker可以透视码,详细教程(有挂攻略);致您一封信;亲爱wep...
透视了解!impoker辅助(... 透视了解!impoker辅助(透视)确实是真的有挂(详细辅助wepoke教程)在进入辅助挂后,参与本...