安卓開發學習10-1:資料儲存:Shared Preferences儲存
阿新 • • 發佈:2022-05-22
解析
什麼是Shared Perferences
應用場景
- 配置資訊
- 主題資訊
- 遊戲的積分資訊等
儲存路徑
在本應用中的data-data-應用包-自定義名稱xml檔案下儲存寫入的資料資訊
使用
獲取步驟
讀取步驟
例項
程式碼
1、需求:實現自動登入,例如qq的可以設定自動登入,然後下一次就不用再寫登入賬號密碼
2、activity_main.xml:簡易實現輸入框
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/background" android:orientation="vertical" tools:context=".MainActivity"> <EditText android:id="@+id/username" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="QQ號/手機號/郵箱" android:layout_marginTop="300dp"/> <EditText android:id="@+id/password" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="密碼"android:layout_marginTop="20dp"/> <ImageButton android:id="@+id/login" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/login" android:layout_gravity="center"/> </LinearLayout>
3、MainActivit.java
public class MainActivity extends AppCompatActivity { //定義後臺賬號和密碼 private String name = "fxz", pwd = "123"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //獲取編輯框使用者名稱和密碼 EditText username_EditText = findViewById(R.id.username); EditText password_EditText = findViewById(R.id.password); //獲取登入按鍵 ImageButton login = findViewById(R.id.login); //獲取Shared Preferences物件 final SharedPreferences sharedPreferences = getSharedPreferences("qqAutoLogin", MODE_PRIVATE); /**********實現自動登入功能************/ //獲取賬號資訊 String username = sharedPreferences.getString("username", null); String password = sharedPreferences.getString("password", null); //判斷使用者名稱和密碼是否為空 if (username != null && password != null) { //如果使用者名稱和密碼相同,實現自動登入 if (username.equals(name) && password.equals(pwd)) { //通過Intent跳轉登入 Intent intent = new Intent(MainActivity.this, MessageActivity.class); //啟動跳轉介面 startActivity(intent); } } else { /**********實現手動登入並儲存賬號和密碼************/ login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //獲取輸入的賬號和密碼 String local_username=username_EditText.getText().toString(); String local_password=password_EditText.getText().toString(); //獲取Editor物件 SharedPreferences.Editor editor=sharedPreferences.edit(); if(local_username.equals(name) && local_password.equals(pwd)){ //這裡儲存賬號和密碼並提交有些多餘 editor.putString("username",local_username); editor.putString("password",local_password); //提交資訊 editor.commit(); //通過Intent跳轉登入 Intent intent = new Intent(MainActivity.this, MessageActivity.class); //啟動跳轉介面 startActivity(intent); Toast.makeText(MainActivity.this, "已儲存賬號和密碼", Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(MainActivity.this, "賬號和密碼錯誤", Toast.LENGTH_SHORT).show(); } } }); } } }
檔案檢視
使用Android Studio