日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

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

發布時間:2023/12/18 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 语言切换功能的全部內容,希望文章能夠幫你解決所遇到的問題。

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