如何通过编程改变交换机的状态而不触发OnCheckChanged监听器Android Studio



类似问题再次链接。但这条线是旧的,可以解决这个问题。我想换一下从switchB中获取switchcha的状态,反之亦然,但不想触发侦听器中的代码。代码只需要在按下开关时执行。我读到:

switchA.setOnCheckedChangeListener (null);
switchA.setChecked(false);

,但这完全禁用了switchA侦听器。如何重新启动它?

谢谢。

您可以简单地再次调用switchA.setOnCheckedChangeListener(this);:

public class MainActivity extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//This is the listener
switchA.setOnCheckedChangeListener(this);
//Disable the listener
switchA.setOnCheckedChangeListener(null);
//set state of Switch
switchA.setChecked(false);
//Enable the Listener again
switchA.setOnCheckedChangeListener(this);
}
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
}
}

相关内容

  • 没有找到相关文章

最新更新