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

时间:2015-08-19 11:16:28

标签: android save

我是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,但我对#34; 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();
}
}

3 个答案:

答案 0 :(得分:0)

这取决于,您是否询问如何在应用程序的生命周期内或不同的生命周期之间保留变量?

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

如果你需要在一个生命周期内完成它,它取决于你的用例,但通常把它放在一个全局的静态变量中就行了!

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

答案 1 :(得分:0)

您可以在活动即将关闭时将您的c值保存在首选项中,当您启动活动时,可以将c变量设置为之前的值

答案 2 :(得分:0)

在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();

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