在 Android 中,SharedPreferences 是一种用于存储小量用户偏好参数的简单机制。以下是一个基本示例,演示如何使用 SharedPreferences 来保存和读取用户偏好参数。

保存用户偏好参数:
import android.content.Context;
import android.content.SharedPreferences;

public class PreferencesHelper {

    private static final String PREFS_NAME = "MyPrefs";
    private static final String KEY_USERNAME = "username";
    private static final String KEY_AGE = "age";
    private static final String KEY_IS_LOGGED_IN = "isLoggedIn";

    // 保存用户名
    public static void saveUsername(Context context, String username) {
        SharedPreferences prefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = prefs.edit();
        editor.putString(KEY_USERNAME, username);
        editor.apply();
    }

    // 保存年龄
    public static void saveAge(Context context, int age) {
        SharedPreferences prefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = prefs.edit();
        editor.putInt(KEY_AGE, age);
        editor.apply();
    }

    // 保存登录状态
    public static void saveLoginStatus(Context context, boolean isLoggedIn) {
        SharedPreferences prefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = prefs.edit();
        editor.putBoolean(KEY_IS_LOGGED_IN, isLoggedIn);
        editor.apply();
    }
}

在这个例子中,我们使用了 SharedPreferences 存储用户的用户名、年龄和登录状态。saveUsername、saveAge 和 saveLoginStatus 方法分别用于保存这些参数。

读取用户偏好参数:
import android.content.Context;
import android.content.SharedPreferences;

public class PreferencesHelper {

    private static final String PREFS_NAME = "MyPrefs";
    private static final String KEY_USERNAME = "username";
    private static final String KEY_AGE = "age";
    private static final String KEY_IS_LOGGED_IN = "isLoggedIn";

    // 读取用户名
    public static String getUsername(Context context) {
        SharedPreferences prefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
        return prefs.getString(KEY_USERNAME, "");
    }

    // 读取年龄
    public static int getAge(Context context) {
        SharedPreferences prefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
        return prefs.getInt(KEY_AGE, 0);
    }

    // 读取登录状态
    public static boolean getLoginStatus(Context context) {
        SharedPreferences prefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
        return prefs.getBoolean(KEY_IS_LOGGED_IN, false);
    }
}

这里的 getUsername、getAge 和 getLoginStatus 方法用于从 SharedPreferences 中读取相应的用户偏好参数。

在 Activity 中使用:
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 保存用户偏好参数
        PreferencesHelper.saveUsername(this, "user123");
        PreferencesHelper.saveAge(this, 25);
        PreferencesHelper.saveLoginStatus(this, true);

        // 读取用户偏好参数
        String username = PreferencesHelper.getUsername(this);
        int age = PreferencesHelper.getAge(this);
        boolean isLoggedIn = PreferencesHelper.getLoginStatus(this);

        // 在这里使用读取到的用户偏好参数
        // 比如在 TextView 中显示
        // textView.setText("Username: " + username + "\nAge: " + age + "\nIsLoggedIn: " + isLoggedIn);
    }
}

这个例子在 onCreate 方法中保存了用户的用户名、年龄和登录状态,然后读取这些参数并在注释中的部分进行了简单的处理。请注意,这只是一个基本的示例,实际使用中你可能需要更多的处理和逻辑。


转载请注明出处:http://www.zyzy.cn/article/detail/15188/Android