java程序保存设置信息_关于Java:将少量信息保存为android中的设置(例如首次运行该应用程序)...

我想保存一个标志来识别我的应用程序是第一次运行还是没有运行。 对于这个简单的工作,我不想创建数据库。

有一个简单的选择可以做到这一点吗? 我只想保存和阅读一些信息。

保持这样的信息的最简单方法是使用Preferences。 您可以在文档中找到有关保存键值集的出色介绍。

SharedPreference是必经之路。 developer.android.com/reference/android/content/

使用sharedPreference或files保存数据,但更好的选择是sharedPreference。

取回

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);

boolean silent = settings.getBoolean("silentMode", false);

为了节省

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);

SharedPreferences.Editor editor = settings.edit();

editor.putBoolean("silentMode", true);

editor.commit();

retrieving和saving代码示例的最佳答案。

使用SharedPreferences。

SharedPreferences preferences = getSharedPreferences("prefName", MODE_PRIVATE);

SharedPreferences.Editor edit= preferences.edit();

edit.putBoolean("isFirstRun", false);

edit.commit();

正确的方法是使用Android类SharedPreferences,该类用于此类操作。

储存设定

SharedPreferences settings = getSharedPreferences(NAME_OF_PREFERENCES, MODE_PRIVATE);

SharedPreferences.Editor editor = settings.edit();

editor.putBoolean("appPreviouslyStarted", true);

editor.apply();

不要忘记应用,否则您对设置的更改将不会被保存!

您可以使用不同的NAME_OF_PREFERENCES创建多个设置。设置存储在设备上,因此在关闭应用程序后将可用。

当您尝试检索尚未创建的NAME_OF_PREFERENCES时,您将创建一个新的。在这里查看更多类似的行为。

apply()与commit()

您可以使用editor.apply()以及editor.commit(),唯一的区别是apply()不返回boolean值,无论编辑是否成功。因此editor.apply()更快,更常用。

什么是MODE_PRIVATE

您可以在此处查看有关不同模式的所有信息。对于您的情况,MODE_PRIVATE很好。

检索设置

SharedPreferences settings = getSharedPreferences(NAME_OF_PREFERENCES, MODE_PRIVATE);

boolean silent = settings.getBoolean("silentMode", false);

从SharedPreferences对象检索设置时,始终必须指定一个默认值,当找不到该设置时将返回该默认值。在这种情况下为false。

我建议您使用SharedPreference永久存储。它非常容易,快速地存储/检索少量信息。

查看代码以从SharedPreference获取值

// Restore preferences

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);

boolean silent = settings.getBoolean("silentMode", false);

setSilent(silent);

并在SharedPreference中存储值

// 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);

例如,您可以做一堂课:

(例如,像一个对象)

import android.content.Context;

import android.content.SharedPreferences;

public class SettingsMain {

Context context;

SharedPreferences preferences;

SharedPreferences.Editor editor;

private static final String PREFER_NAME ="settingsMain";

public static final String KEY_VIBRATE ="switchVibrate";

public SettingsMain(Context context) {

this.context = context;

setPreferences();

}

private void setPreferences(){

preferences = context.getSharedPreferences(PREFER_NAME, context.MODE_PRIVATE);

editor = preferences.edit();

}

public void cleanPreferences(){

editor.clear();

editor.commit();

}

public void setStatusVibrate(Boolean status){

editor.putBoolean(KEY_VIBRATE, status);

editor.commit();

}

public Boolean getstatusVibrate(){

return preferences.getBoolean(KEY_VIBRATE, true);

}

}

在您的活动通话中:

public class Home extends AppCompatActivity {

private SettingsMain settings;

private SwitchCompat switchVibrate;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.master);

setResources();

getSettings();

}

private void setResources(){

switchVibrate = (SwitchCompat) findViewById(R.id.master_main_body_vibrate_switch);

switchVibrate.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

@Override

public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

settings.setStatusVibrate(isChecked);

}

});

}

private void getSettings(){

settings = new SettingsMain(this);

switchVibrate.setChecked(settings.getstatusVibrate());

}

}

全局使用static变量怎么办?

您可以按照本教程中的说明进行操作。我知道处理Content provider只是保留一些标志是不必要的。

另外,您可以查看Android提供的"共享首选项"。这是一个入门的好例子。

这是我的建议。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值