Java Android-SwitchCompact禁用/停止默认行为

Java Android-SwitchCompact禁用/停止默认行为,java,android,android-appcompat,Java,Android,Android Appcompat,在我的android项目中,我有,onClick,我在其中做网络工作,根据响应,我想将SwitchCompact更改为选中或不选中 我现在面临的问题是: 当我点击SwitchCompact时,它会改变它的状态(即从true变为false,反之亦然),这是它的正常行为。我想禁用它的正常/默认行为 可能吗 class MyClass extends Fragment implements View.OnClickListener { SwitchCompat switchCompact;

在我的android项目中,我有,
onClick
,我在其中做网络工作,根据响应,我想将
SwitchCompact
更改为选中或不选中

我现在面临的问题是:
当我点击SwitchCompact时,它会改变它的状态(即从true变为false,反之亦然),这是它的正常行为。我想禁用它的正常/默认行为

可能吗

class MyClass extends Fragment implements View.OnClickListener {
    SwitchCompat switchCompact;
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        //my view inflating stuff
        switchCompact= (SwitchCompat) view.findViewById(R.id.switch_id);
        switchCompact.setOnClickListener(this);
        return view;
    }


    @Override
    public void onClick(View view) {
        if (view.getId()==R.id.switch_id) {
            //make http request
        }
    }

    public void onResponse(Response response){
        switchCompact.setChecked(response.getStatus());
    }
}

任何帮助都将不胜感激

好吧,给我的头施加更大的压力,我发现了一些类似于变通的东西,而不是一个确切的答案:)


@RageshRamesh:我在想,为什么不在响应之前或单击
onClick
之后,即当开关改变其状态时,恢复其状态。此解决方案按预期工作。谢谢你的帮助

好吧,给我的头施加更大的压力,我发现了一些类似于变通的东西,而不是一个确切的答案:)


@RageshRamesh:我在想,为什么不在响应之前或单击
onClick
之后,即当开关改变其状态时,恢复其状态。此解决方案按预期工作。谢谢你的帮助

我不确定是否有办法做到这一点。我的建议是让交换机执行其默认行为。然后你打网络电话。如果您的呼叫成功,请保持交换机不变,否则将其还原,并向用户显示一个SnackBar,说明发生了什么。:)我必须这样做作为最后手段…我使用了相同的实现,这就是原因。做了大量的挖掘,却找不到改变默认行为的方法。@RageshRamesh检查我的解决方法。我不确定是否有办法做到这一点。我的建议是让交换机执行其默认行为。然后你打网络电话。如果您的呼叫成功,请保持交换机不变,否则将其还原,并向用户显示一个SnackBar,说明发生了什么。:)我必须这样做作为最后手段…我使用了相同的实现,这就是原因。做了大量的挖掘,却找不到改变默认行为的方法。@RageshRamesh检查我的解决方法。很高兴能帮上忙。我想这是可行的。但用户界面不是一次点击就更新了很多次吗?很乐意帮忙。我想这是可行的。但用户界面不是一次点击就更新了很多次吗?
 @Override
 public void onClick(View view) {
    if (view.getId()==R.id.switch_id) {
       switchCompact.setChecked(!switchCompact.isChecked());
       //make networking stuff.
    }
 }