1
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.some_layout);
    toggleButton=(ToggleButton) findViewById(R.id.toggleButton1);
}
@Override
public void onSaveInstanceState(Bundle save) {
    super.onSaveInstanceState(save);
    save.putBoolean("ToggleButtonState", toggleButton.isChecked());
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    toggleButton.setChecked(savedInstanceState.getBoolean("ToggleButtonState",false);
}

それはうまくいくはずですが、私が次のことをすると:

  1. アプリケーションメニューのアイコンでアプリケーションを実行する
  2. トグルボタンを確認する
  3. 戻るボタンを押してホーム画面に戻る
  4. アイコンからアプリケーションを再度アクティブ化する

トグルボタンがオフになっているのがわかりますが、なぜそうなのですか?どうすればこれを克服できますか?

4

2 に答える 2

4

保存と復元の方法が何であるかを見逃しましたが、探していた機能を実現するために、次のことを行いました。

public class MainActivity extends Activity {

    private ToggleButton toggleButton;
    private static Bundle bundle = new Bundle();
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        toggleButton = (ToggleButton)findViewById(R.id.toggleButton1);
    }



    @Override
    public void onPause() {
        super.onPause();
        bundle.putBoolean("ToggleButtonState", toggleButton.isChecked());
    }

    @Override
    public void onResume() {
        super.onResume();
        toggleButton.setChecked(bundle.getBoolean("ToggleButtonState",false));
    }
}
于 2012-09-08T23:11:16.887 に答える
0

これは私のコードです

package com.example.stackoverflow;



import android.app.Activity;
import android.os.Bundle;

import android.widget.ToggleButton;

public class MainActivity extends Activity {
    ToggleButton toggleButton;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        toggleButton = (ToggleButton)findViewById(R.id.toggleButton1);
    }

    @Override
    public void onSaveInstanceState(Bundle save) {
        super.onSaveInstanceState(save);
        save.putBoolean("ToggleButtonState", toggleButton.isChecked());
    }

    @Override
    public void onRestoreInstanceState(Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);
        toggleButton.setChecked(savedInstanceState.getBoolean("ToggleButtonState",false));
    }
}
于 2012-09-08T22:54:10.990 に答える