weixin_43653383 2019-04-03 21:09 采纳率: 0%
浏览 360

(Android)我这段代码在7.0运行正常,在安卓5.1运行就有问题,求解答?

是用来切换中英文的,7.0随便切,5.1切一次就切不回来了,不知道什么原因

public class StartActivity extends Activity  {

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

        Constants.activityList.add(this);
        switchLanguage(Constants.langae);



        Button button3 =(Button) findViewById(R.id.button3);
        button3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                if (!Constants.langae.equals("en")) {
                    Constants.langae = "en";
                } else {
                    Constants.langae = "zh";
                }

                Locale locale = new Locale(Constants.langae);
                Locale.setDefault(locale);
                Configuration config = new Configuration();
                config.locale = locale;
                Resources resources = getResources();
                resources.updateConfiguration(config, resources.getDisplayMetrics());


                for (Activity activity : Constants.activityList) {
                    activity.finish();
                }

                startActivity(new Intent(StartActivity.this, StartActivity.class));
            }
        });
    }

    protected void switchLanguage(String language) {
        Resources resources = getResources();
        Configuration config = resources.getConfiguration();
        DisplayMetrics dm = resources.getDisplayMetrics();
        switch (language) {
            case "zh":
                config.locale = Locale.CHINESE;
                resources.updateConfiguration(config, dm);
                break;
            case "en":
                config.locale = Locale.ENGLISH;
                resources.updateConfiguration(config, dm);
                break;
        }
    }
}

public class Constants {
//系统默认的类型
public static String langae = "en";
public static List activityList = new ArrayList<>();
}


  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-10-25 19:56
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换