重新打开 android 应用程序时从最后一个计数器继续

Continue from the last counter when reopen the android application

我是 Android 编程新手。我想申请。每当用户单击时,按钮文本都会增加。当应用程序关闭时,我的计数器会重置。如何存储最后的计数器值并在重新打开应用程序时再次调用它?

import android.app.Activity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
private int c;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    final Button button = (Button) findViewById(R.id.buttonClick);
    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            c++;
            button.setText(Integer.toString(c));
        }
    });
}
}

编辑: 我尝试使用这个 Shared Preferences 但我得到了关于 "setSilent" 和 "mSilentMode" 的错误。请帮助

我的新密码

import android.app.Activity;

import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
public static final String PREFS_NAME = "MyPrefsFile";
private int c;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
    boolean silent = settings.getBoolean("silentMode", false);
    setSilent(silent);

    final Button button = (Button) findViewById(R.id.buttonClick);
    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            c++;
            button.setText(Integer.toString(c));
        }
    });
}

@Override
protected void onStop(){
    super.onStop();

    // We need an Editor object to make preference changes.
    // All objects are from android.context.Context
    SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
    SharedPreferences.Editor editor = settings.edit();
    editor.putBoolean("silentMode", mSilentMode);

    // Commit the edits!
    editor.commit();
}
}

视情况而定,您是在问如何在应用程序的整个生命周期或不同的生命周期之间保留变量?

如果跨越不同的生命周期,您可以将其写入磁盘,然后读取它onCreate

如果您需要在一个生命周期内执行此操作,这取决于您的用例,但通常将其放在全局静态变量中就可以了!

如果不清楚,并且您想要一些示例代码,请不要害怕提问! :)

当你的activity将要关闭时,你可以将你的c值保存在Preference中,当你启动你的activity时,你将你的c变量设置为之前的值

在您的 onClickListener 中使用此代码段:如果有的话,获取 int

SharedPreferences hhii = getSharedPreferences("c_value", MODE_PRIVATE);
    int ca = hhii.getInt("c_value2", 0);
    button.setText(ca+"");

在您的 onClickListener 中使用它:在用户单击按钮时保存 int - 比将其保存在 onBackPressed 或 OnDestroy 或其他任何内容中要好得多

 c++;
                button.setText(Integer.toString(c));
                SharedPreferences hhii = getSharedPreferences("c_value", MODE_PRIVATE);
                hhii.edit().putInt("c_value2",c).commit();

来自伊朗的问候, 加布里埃尔