Java 将少量信息另存为android中的设置(比如第一次运行该应用程序)
我想保存一个标志,用于识别我的应用是否首次运行。对于这个简单的工作,我不想创建数据库Java 将少量信息另存为android中的设置(比如第一次运行该应用程序),java,android,database,application-settings,Java,Android,Database,Application Settings,我想保存一个标志,用于识别我的应用是否首次运行。对于这个简单的工作,我不想创建数据库 有没有一个简单的方法可以做到这一点?我只想保存和读取少量信息。使用SharedReference或文件保存数据,但更好的选择是SharedReference 检索 SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); boolean silent = settings.getBoolean("silentMode", false);
有没有一个简单的方法可以做到这一点?我只想保存和读取少量信息。使用
SharedReference
或文件
保存数据,但更好的选择是SharedReference
检索
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();
我建议你使用持久存储。它非常容易和快速地存储/检索少量信息
请参阅代码以从SharedReference获取值
// Restore preferences
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
boolean silent = settings.getBoolean("silentMode", false);
setSilent(silent);
// 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);
并将值存储在SharedReference中
// Restore preferences
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
boolean silent = settings.getBoolean("silentMode", false);
setSilent(silent);
// 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);
全局使用
静态
变量怎么样
你可以这样做。我知道仅仅为了保留一些标志,处理内容提供商是不必要的
否则,您可以查看Android提供的。开始吧
这将是我的建议。使用
SharedReferences
SharedPreferences preferences = getSharedPreferences("prefName", MODE_PRIVATE);
SharedPreferences.Editor edit= preferences.edit();
edit.putBoolean("isFirstRun", false);
edit.commit();
一个正确的方法是使用Android类
SharedReferences
,它用于类似的事情
存储设置
不要忘记应用,否则您对设置的更改将无法保存强>
您可以使用不同的首选项的名称创建多个设置。这些设置存储在设备上,因此在关闭应用程序后可用
当您尝试检索尚未创建的首选项的名称时,您将创建一个新的首选项。看到更多这样的行为
apply()与commit()的比较
您可以使用editor.apply()
以及editor.commit()
,唯一的区别是,如果编辑成功与否,apply()不会返回布尔值。因此,editor.apply()更快,更常用
什么是私人模式
你可以看到所有不同的模式。对于您的情况,MODE\u PRIVATE
可以
检索设置
从SharedReferences
对象检索设置时,始终必须指定一个默认值,当未找到该设置时,将返回该值。在这种情况下,这是false
您可以执行一个类,例如:
(比如像一个物体)
在您的活动电话中:
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());
}
}
保存此类信息的最简单方法是使用。您可以在上找到一个很棒的介绍。SharedReference是一个不错的选择。
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());
}
}