gpt4 book ai didi

java - onSaveInstanceState 和 onRestoreInstanceState 似乎不起作用

转载 作者:行者123 更新时间:2023-12-01 23:26:36 25 4
gpt4 key购买 nike

我正在尝试创建一个计数器,并尝试在您离开应用程序时保存当前值,因此我尝试使用 onSaveInstanceStateonRestoreInstanceState 但似乎不上类

代码如下

package com.example.taekwondobuddy.util;

import android.app.Activity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class Counter extends Activity {

int counter;
Button add;
Button sub;
TextView display;


public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.counter);

counter = 0;
add = (Button) findViewById(R.id.button1);
sub = (Button) findViewById(R.id.button2);
display = (TextView) findViewById(R.id.tvDisplay);
add.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
counter++;
display.setText("Counter: " + counter);
}
});
sub.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
counter--;
display.setText("Counter: " + counter);
}
});
}

public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);


savedInstanceState.putInt("counter", counter);


}

@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);


counter = savedInstanceState.getInt("counter");

}



}

这是我第一次超过 savedInstanceState 所以我想知道语法是否正确以及我是否以正确的方式使用它?如果是这样我的代码有什么问题吗?感谢帮助和提示

最佳答案

您需要交换方法中的顺序,因为父级的实现方法将从方法中返回,并且您的代码将不会运行。另外,您还需要检查 onRestoreInstanceState 中的参数是否不为 null。

public void onSaveInstanceState(Bundle savedInstanceState) {
savedInstanceState.putInt("counter", counter);
super.onSaveInstanceState(savedInstanceState);
}

@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
if (savedInstanceState != null) {
counter = savedInstanceState.getInt("counter");
}
super.onRestoreInstanceState(savedInstanceState);
}
<小时/>

你也说了

I'm trying to make a counter and trying to save the current value when you leave the application

仅当应用程序位于内存中时,保存实例状态才有效(尽管离开应用程序并不会将其删除)。如果它被杀了,国家就会消失。

关于java - onSaveInstanceState 和 onRestoreInstanceState 似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19887348/

25 4 0
文章推荐: java - 如何使用java中的哈希集来确定字符串是否包含有效字符?
文章推荐: java - 使用 boolean 值进行冒泡排序以确定数组是否已排序
文章推荐: java - ClassName 的原始类型是否等同于 ClassName