From f35664f0ad753df3dc4ca3b47c2f91263973af34 Mon Sep 17 00:00:00 2001
From: 18034727885 <973609879@qq.com>
Date: 星期四, 09 七月 2026 13:54:51 +0800
Subject: [PATCH] 修复初始语言非法语的问题

---
 xldutils-kotlin/src/main/java/cn/sinata/xldutils/utils/LanguageUtil.java |   47 ++++++++++++++++++-----------------------------
 1 files changed, 18 insertions(+), 29 deletions(-)

diff --git a/xldutils-kotlin/src/main/java/cn/sinata/xldutils/utils/LanguageUtil.java b/xldutils-kotlin/src/main/java/cn/sinata/xldutils/utils/LanguageUtil.java
index f19d0f1..bb3031a 100644
--- a/xldutils-kotlin/src/main/java/cn/sinata/xldutils/utils/LanguageUtil.java
+++ b/xldutils-kotlin/src/main/java/cn/sinata/xldutils/utils/LanguageUtil.java
@@ -6,11 +6,27 @@
 import android.os.Build;
 import android.os.LocaleList;
 import android.text.TextUtils;
-import android.util.DisplayMetrics;
 
 import java.util.Locale;
 
 public class LanguageUtil {
+    private static String defaultLanguage = "";
+
+    public static void setDefaultLanguage(String language) {
+        defaultLanguage = language;
+    }
+
+    //获取语言
+    public static String getLanguage() {
+        return SPUtils.Companion.instance().getString("language", defaultLanguage);
+    }
+
+    //设置语言
+    public static void saveLanguage(Context context, String language) {
+        SPUtils.Companion.instance().put("language", language).apply();
+        LanguageUtil.changeAppLanguage(context, language, "");
+    }
+
     private static Locale getLocaleByLanguage(String language) {
         if (TextUtils.isEmpty(language)) {
             return Locale.FRENCH;
@@ -46,7 +62,7 @@
      * @param context
      * @param newLanguage 想要切换的语言类型 比如 Const.Language.ENGLISH ,"zh"
      */
-    public static void changeAppLanguage(Context context, String newLanguage, String country) {
+    private static void changeAppLanguage(Context context, String newLanguage, String country) {
         if (TextUtils.isEmpty(newLanguage)) {
             return;
         }
@@ -64,32 +80,5 @@
             configuration.locale = locale;
             resources.updateConfiguration(configuration, resources.getDisplayMetrics());
         }
-    }
-
-    /**
-     * 如果是7.0以下,我们需要调用changeAppLanguage方法,
-     * 如果是7.0及以上系统,直接把我们想要切换的语言类型保存在SharedPreferences中,然后重新启动MainActivity即可
-     */
-    public static void setLanguage(String language, String country, Context appContext) {
-        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {
-            changeAppLanguage(appContext, language, country);
-        }
-        SPUtils.Companion.instance().put("language", language);
-        SPUtils.Companion.instance().put("country", country);
-    }
-
-
-    public static void set(boolean isEnglish, Context context) {
-        Configuration configuration = context.getResources().getConfiguration();
-        DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
-        if (isEnglish) {
-            //设置英文
-            configuration.locale = Locale.ENGLISH;
-        } else {
-            //设置中文
-            configuration.locale = Locale.SIMPLIFIED_CHINESE;
-        }
-        //更新配置
-        context.getResources().updateConfiguration(configuration, displayMetrics);
     }
 }

--
Gitblit v1.7.1