0

私はsavedInstanceStateが初めてです。そこにはいくつかの優れたリソースがあり、私はそれをほぼすべて把握しています. ただし、 TextView は希望どおりに更新されますが、消えます。ボタンをクリックして元に戻すのではなく、デバイスを回転させてもそこにとどまりたいです。私が間違っている場所について何か考えはありますか?ありがとう!

TextView CashView は、int キャッシュを確認したい場所です。

@Override
    public void onSaveInstanceState(Bundle savedInstanceState) {
      super.onSaveInstanceState(savedInstanceState);
      // Save UI state changes to the savedInstanceState.
      // This bundle will be passed to onCreate if the process is
      // killed and restarted.
      savedInstanceState.putInt("cash", cash);
      savedInstanceState.putInt("anteBet", anteBet);
      savedInstanceState.putInt("playBet", playBet);
      savedInstanceState.putInt("pairPlusBet", pairPlusBet);
      savedInstanceState.putString("cashView", cashView.toString());
      // etc.
    }

@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
  super.onRestoreInstanceState(savedInstanceState);
  // Restore UI state from the savedInstanceState.
  // This bundle has also been passed to onCreate.
  cash = savedInstanceState.getInt("cash");
  anteBet = savedInstanceState.getInt("anteBet");
  playBet = savedInstanceState.getInt("playBet");
  pairPlusBet = savedInstanceState.getInt("pairPlusBet");
  cashView.setText(savedInstanceState.getString(cashView.toString()));
}
4

1 に答える 1

0

ははは…1時間いじった後、質問をし終わるとすぐにそれを理解しました。お時間をいただきありがとうございます。

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
  super.onSaveInstanceState(savedInstanceState);
  // Save UI state changes to the savedInstanceState.
  // This bundle will be passed to onCreate if the process is
  // killed and restarted.
  savedInstanceState.putInt("cash", cash);
  savedInstanceState.putInt("anteBet", anteBet);
  savedInstanceState.putInt("playBet", playBet);
  savedInstanceState.putInt("pairPlusBet", pairPlusBet);
  savedInstanceState.putString("cashView", cashView.getText().toString());
  // etc.
}

@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
  super.onRestoreInstanceState(savedInstanceState);
  // Restore UI state from the savedInstanceState.
  // This bundle has also been passed to onCreate.
  cash = savedInstanceState.getInt("cash");
  anteBet = savedInstanceState.getInt("anteBet");
  playBet = savedInstanceState.getInt("playBet");
  pairPlusBet = savedInstanceState.getInt("pairPlusBet");
  cashView.setText(savedInstanceState.getString("cashView"));
}

savedInstanceState.putString("cashView", cashView.toString()); を変更しました。savedInstanceState.putString("cashView", cashView.getText().toString()); に

私は CashView.setText(savedInstanceState.getString(cashView.toString())); を変更しました。CashView.setText(savedInstanceState.getString("cashView")); に

どちらが修正したかはわかりませんが、修正されました。とにかく、ありがとう!

于 2013-08-09T20:47:26.183 に答える