在不进入 OnCheckedChangeListener 的情况下设置 RadioGroup 的初始状态

Set initial state on RadioGroup without entering OnCheckedChangeListener

我正在使用 RadioGroup,当用户按下按钮上的一个时,将调用数据库(更新数据)。我已经为 RadioGroup 设置了 OnCheckedChangeListener:

viberPermissionView.getAppPermissions().setOnCheckedChangeListener(new 
RadioGroup.OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(RadioGroup radioGroup, 
    int checkedRadioButtonId) 
    {
     callService(App.VIBER, checkedRadioButtonId);
    }
});

我在打开应用程序并设置按钮状态(选择哪个按钮)时遇到问题,这与按下按钮相同,我正在调用数据库并不必要地更新数据.我想避免在不进入方法 OnCheckedChangeListener 的情况下调用数据库来设置状态。这是我当前设置初始状态的部分:

private void createResourcePicker() {
    resourcePicker.setSlideOnFling(false);
    resourcePicker.setAdapter(new PermissionsAdapter(permissions));
    resourcePicker.addScrollStateChangeListener(this);
    resourcePicker.addOnItemChangedListener(this);
    resourcePicker.scrollToPosition(1);
    resourcePicker.setItemTransitionTimeMillis(10);
    resourcePicker.setItemTransformer(new ScaleTransformer.Builder()
            .setMinScale(0.8f)
            .build());
}

我终于找到了解决这个问题的方法。在 OnCheckedChanged 方法中,我采用 RadioButton 并设置 OnClickListener。在 OnClickListener 中,我设置了当用户按下按钮时需要执行的功能,并且当动态设置 RadioGroup 的状态时不执行该功能。逻辑如下:

viberPermissionView.getAppPermissions().setOnCheckedChangeListener(
            new RadioGroup.OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(RadioGroup radioGroup, 
                int checkedRadioButtonId) {
                    final RadioButton checkedButton =     
                viberPermissionView.findViewById(checkedRadioButtonId);
                    checkedButton.setOnClickListener(new OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            startService(checkedButton, 
                              App.VIBER);
                        }
                    });
                }
            });