【问题标题】:Change Language in Every Activity in Kotlin在 Kotlin 的每个活动中更改语言
【发布时间】:2020-11-29 21:52:05
【问题描述】:

我的 LocaleHelper 类我用来更改语言Github Code

在我的 SecondActivity 课程中,例如当有人选择 english 时。

LocaleHelper.setLocale(this, "en")
recreate()

但我的问题是如何在 english

中更改 MainActivity

【问题讨论】:

    标签: android android-studio android-layout kotlin


    【解决方案1】:

    更新 通过为每个活动创建一个新类来找到解决方案。您应该为每个活动创建一个新类,以获取活动对象的实例。之后处理案例。如果发生变化,请调用 setLocale(this, "languageCode")。将此定义为您的 Activity 类。

     fun setLocale(activity: Activity, languageCode: String?) {
            val locale = Locale(languageCode)
            Locale.setDefault(locale)
            val resources = activity.resources
            val config = resources.configuration
            config.setLocale(locale)
            resources.updateConfiguration(config, resources.displayMetrics)
    
        }
    

    像这样创建一个新类:

    public class Main {
        public Main(MainActivity act, String s) {
            act.setLocale(act,s);
        }
    
    }
    

    然后在发生变化时这样调用它:

    override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            var lang = SettingsActivity()
            if (lang.STH_CHANGE) {
                if (lang.ENGLISH) {
                    val myobj = Main(this, "en")
    
                }
                if (lang.GREEK) {
                    val myobj = Main(this, "gr")
    
                }
            }
    
            setContentView(R.layout.activity_main)
    

    SettingsActivity() 是我的 Activity,其中有一个按钮可以更改为英语-希腊语。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-15
      • 1970-01-01
      • 2018-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-09
      相关资源
      最近更新 更多