2011-05-09 82 views
8

我有這樣定義一個切換按鈕:如何以編程方式更改ToggleButton狀態?

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

我要編程上改變其狀態。我嘗試使用setCheckedtoggle方法,但這兩種方法都不適用於我的情況。

我有一個正在進行的通知,當我的活動收到通知意圖時, 切換按鈕應設置爲未檢查,但它不起作用。

我在活動的onResume上這樣做。代碼正在執行,但ToggleButton的狀態不會改變。

奇怪的是,如果我在活動的onCreate上調用setChecked(false),它確實會更改按鈕的狀態,但不會改變onResume。我錯過了什麼?

謝謝。

回答

15

明白了。有點。

我有這個

protected void onResume() { 
     super.onResume(); 

     Intent intent; 

     if ((intent = getIntent()) != null && MainActivity.STOP.equals(intent.getAction())) { 
      disable(); 

      toggle.setChecked(false); 

      finish(); 
     } 
    } 

但調用finish實際上並沒有做任何事情。我刪除它,現在它工作。不知道爲什麼這個修復它。

有人照顧解釋?

0

它應該工作。

檢查您沒有在代碼中的其他位置調用setChecked(true)將其設置爲false後執行。也許在OnCheckedChangeListener

+0

所以你的情況相反,改變它可以追溯到它的調用方法可能是的onCreate(),或在onPause切換按鈕的狀態......

細節我知道它應該,但事實並非如此。我沒有任何其他的'setChecked'調用,只是搜索所有的代碼。 – Franco 2011-05-09 21:54:49

1

時撥打電話活動完成,應關閉完成。 ActivityResult會傳播給通過onActivityResult()啓動的任何人。有關使用完成here.....

相關問題