Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将少量信息另存为android中的设置(比如第一次运行该应用程序)_Java_Android_Database_Application Settings - Fatal编程技术网

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

}