13

次のように定義された ToggleButton があります。

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

そして、その状態をプログラムで変更したいと考えています。setCheckedメソッドとメソッドを使用してみtoggleましたが、私の状況ではどちらも機能しません。

進行中の通知があり、アクティビティが通知インテントを受け取ったときに、トグル ボタンをオフに設定する必要がありますが、機能していません。

アクティビティのonResume. コードは実行されていますが、ToggleButton の状態は変化しません。

setChecked(false)奇妙なことに、アクティビティを呼び出すとonCreate、ボタンの状態は変更されますが、 on は変更されませんonResume。私は何が欠けていますか?

ありがとう。

4

4 に答える 4

19

とった。すこし。

私はこれを持っていた

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

        Intent intent;

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

            toggle.setChecked(false);

            finish();
        }
    }

しかし、への呼び出しfinishは実際には何もしていませんでした。私はそれを削除しましたが、今は動作します。これで修正された理由はわかりません。

誰か説明してくれませんか?

于 2011-05-10T00:41:08.630 に答える
1

アクティビティが完了し、閉じる必要がある場合は、Finish を呼び出します。ActivityResult は、onActivityResult() を介してあなたを起動した人に伝播されます。

したがって、あなたの場合、トグル ボタンの状態を変更する代わりに、onCreate() または onPause である呼び出しメソッドに戻ります...

finish の使用に関する詳細はこちら.....

于 2013-05-02T08:02:07.860 に答える