在我的android项目中,我有SwitchCompact,其中的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());
    }
}


任何帮助将不胜感激。

最佳答案

好吧,施加更大的压力在我的头上,我发现类似的解决方法,而不是确切的答案:)

 @Override
 public void onClick(View view) {
    if (view.getId()==R.id.switch_id) {
       switchCompact.setChecked(!switchCompact.isChecked());
       //make networking stuff.
    }
 }


@RageshRamesh:我在想为什么不在响应之前或onClick之后即当Switch更改其状态时恢复其状态。此替代方法按预期方式工作。谢谢你的帮助。

07-26 07:06