日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android学习–Android app 语言切换功能

發布時間:2023/12/18 Android 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android学习–Android app 语言切换功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

功能:

app用戶根據自己的語言喜好,設置app語言。語言設置只針對本app,并在下次啟動應用時保留前一次啟動設置。

更新語言:

public static void changeAppLanguage(Resources resources, String lanAtr) { Configuration config = resources.getConfiguration(); DisplayMetrics dm = resources.getDisplayMetrics(); if (lanAtr.equals("ru_RU")) { config.locale = new Locale("ru", "RU"); } else if (lanAtr.equals("en_US")) { config.locale = Locale.ENGLISH; } else if (lanAtr.equals("pt")) { config.locale = new Locale("pt"); } else { config.locale = Locale.getDefault(); } resources.updateConfiguration(config, dm); }
sharePreferences存入設置語言:
Sharences sharedPreferences = getActivity().getSharedPrefeivity().getPackageName(), 0); sharedPreferences.edit().putString("language", lanAtr).commit();

語言更新后,對于之前出現且目前仍舊存活的activity,語言設置是不生效的。可以通過重啟對應的activity,讓語言及時生效。

private void restart() { Intent it = new Intent(getActivity(), MainActivity.class); //MainActivity是你想要重啟的activity it.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); it.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); getActivity().startActivity(it); }

NOTE:

  • 一般,從用戶體驗角度講,語言設置功能入口會放在App的前幾層,如果入口太深,導致用戶無法快速找到語言設置入口,并且如果要講應用重啟的話,用戶行為操作記錄會比較麻煩。
  • 重啟對應Activity有幾種方式
    • 如果用戶進入語言設置需要太多的層級,或者在操作語言設置之前操作的其他行為,APP想保存的,那可以通過廣播的方式(sendBroadcast()),語言改變時發送廣播,所有activity接受到廣播后(BroadcastReceiver),都進行重啟操作;
    • 如果允許用戶設置語言后,app回到主目錄,這樣就簡單很多,直接調用上面的restart()方法即可。

重啟singleTask activity:

如果你的啟動activity是singleTask,向上面那樣重啟,語言還是不生效的。這種情況如何呢?可以通過了解、利用其生命周期來解決,在切回singleTask屬性的activity時,activity會調用onNewIntent()方法。 重寫該方法就可以。以下是一種解決方法,先finish自己,然后重啟自己。

@Overrideprotected void onNewIntent(Intent intent) { if (intent.getAction() == null) { finish(); Intent i = new Intent(this, MainActivity.class); startActivity(i); // overridePendingTransition(0, 0); } else { //其他邏輯 } }

結束語:

APP語言設置不復雜,主要是如何將語言設置及時生效,涉及activity重啟,廣播等。

轉載于:https://www.cnblogs.com/Free-Thinker/p/5395303.html

總結

以上是生活随笔為你收集整理的Android学习–Android app 语言切换功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。