📅  最后修改于: 2021-01-05 05:32:35             🧑  作者: Mango
Android提供了许多存储应用程序数据的方式。这种方式之一称为共享首选项。共享首选项允许您以键,值对的形式保存和检索数据。
为了使用共享首选项,您必须调用方法getSharedPreferences(),该方法返回一个SharedPreference实例,该实例指向包含首选项值的文件。
SharedPreferences sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
第一个参数是键,第二个参数是MODE。除了私有之外,下面列出了其他可用模式:
Sr.No | Mode & description |
---|---|
1 |
MODE_APPEND This will append the new preferences with the already existing preferences |
2 |
MODE_ENABLE_WRITE_AHEAD_LOGGING Database open flag. When it is set , it would enable write ahead logging by default |
3 |
MODE_MULTI_PROCESS This method will check for modification of preferences even if the sharedpreference instance has already been loaded |
4 |
MODE_PRIVATE By setting this mode, the file can only be accessed using calling application |
5 |
MODE_WORLD_READABLE This mode allow other application to read the preferences |
6 |
MODE_WORLD_WRITEABLE This mode allow other application to write the preferences |
您可以使用SharedPreferences.Editor类将某些内容保存在sharedpreferences中。您将调用SharedPreference实例的edit方法,并将在编辑器对象中接收它。它的语法是-
Editor editor = sharedpreferences.edit();
editor.putString("key", "value");
editor.commit();
除了putString方法之外,编辑器类中还有可用的方法,允许在共享首选项内操作数据。它们列出如下-
Sr. NO | Mode & description |
---|---|
1 |
apply() It is an abstract method. It will commit your changes back from editor to the sharedPreference object you are calling |
2 |
clear() It will remove all values from the editor |
3 |
remove(String key) It will remove the value whose key has been passed as a parameter |
4 |
putLong(String key, long value) It will save a long value in a preference editor |
5 |
putInt(String key, int value) It will save a integer value in a preference editor |
6 |
putFloat(String key, float value) It will save a float value in a preference editor |
本示例演示了共享首选项的用法。它显示了一个包含一些文本字段的屏幕,该文本字段的值在应用程序关闭时被保存,在再次打开时被带回。
要尝试使用此示例,您需要按照以下步骤在开发应用程序后在实际设备上运行此示例-
Steps | Description |
---|---|
1 | You will use Android studio to create an Android application under a package com.example.sairamkrishna.myapplication. |
2 | Modify src/MainActivity.java file to add progress code to display the spinning progress dialog. |
3 | Modify res/layout/activity_main.xml file to add respective XML code. |
4 | Run the application and choose a running android device and install the application on it and verify the results. |
以下是修改后的MainActivity.java的内容。
package com.example.sairamkrishna.myapplication;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
EditText ed1,ed2,ed3;
Button b1;
public static final String MyPREFERENCES = "MyPrefs" ;
public static final String Name = "nameKey";
public static final String Phone = "phoneKey";
public static final String Email = "emailKey";
SharedPreferences sharedpreferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ed1=(EditText)findViewById(R.id.editText);
ed2=(EditText)findViewById(R.id.editText2);
ed3=(EditText)findViewById(R.id.editText3);
b1=(Button)findViewById(R.id.button);
sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String n = ed1.getText().toString();
String ph = ed2.getText().toString();
String e = ed3.getText().toString();
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putString(Name, n);
editor.putString(Phone, ph);
editor.putString(Email, e);
editor.commit();
Toast.makeText(MainActivity.this,"Thanks",Toast.LENGTH_LONG).show();
}
});
}
}
以下是修改后的主要活动文件res / layout / activiy_main.xml的内容。
以下是文件res / values / .xml字符串的修改内容。
My Application
以下是内容默认文件AndroidManifest.xml。
让我们尝试运行您的应用程序。我假设您已将实际的Android Mobile设备与计算机连接。要从Android Studio运行该应用,请打开您项目的活动文件之一,然后点击运行工具栏中的图标。在启动应用程序之前,Android Studio将显示以下窗口,以选择要在其中运行Android应用程序的选项。
选择您的移动设备作为选项,然后检查将显示以下屏幕的移动设备-
现在,只需在字段中输入一些文本即可。像我放一些随机的名称和其他信息,然后单击保存按钮。
现在,当您按保存按钮时,文本将保存在共享首选项中。现在按返回按钮并退出应用程序。现在再次打开它,您将看到在应用程序中写回的所有文本。