如何以编程方式更改ToggleButton状态?

我有一个像这样定义的ToggleButton:

<ToggleButton android:text="ToggleButton" android:id="@+id/toggle" android:layout_height="wrap_content" android:layout_width="fill_parent"></ToggleButton> 

我想通过编程来改变它的状态。 我尝试使用setCheckedtoggle方法,但是这些都不适用于我的情况。

我有一个正在进行的通知,当我的活动收到通知意图时,切换button应设置为不检查,但它不工作。

我正在对活动的onResume做这个。 代码正在执行,但ToggleButton的状态不会改变。

奇怪的是,如果我在活动的onCreate上调用setChecked(false) ,它会改变button的状态,但不会改变onResume 。 我错过了什么?

谢谢。

Solutions Collecting From Web of "如何以编程方式更改ToggleButton状态?"

得到它了。 有点。

我有这个

  protected void onResume() { super.onResume(); Intent intent; if ((intent = getIntent()) != null && MainActivity.STOP.equals(intent.getAction())) { disable(); toggle.setChecked(false); finish(); } } 

但是,要finish的呼吁实际上并没有做任何事情。 我删除它,现在它的工作。 不知道为什么这个修复它。

有人关心解释?

当您的活动完成后,请致电完成并closures。 ActivityResult被传播给通过onActivityResult()启动的任何人。

所以在你的情况下,而不是改变切换Button状态它回到它的调用方法,可能是onCreate()或onPause …

在这里使用完成的细节…..

它应该工作。

检查你没有调用setChecked(true)在你设置为false后执行的代码中的其他地方。 也许在一个OnCheckedChangeListener