【发布时间】:2016-10-12 09:56:49
【问题描述】:
我有三个活动 Login Activity 、 Complaint Activity 和 Customer Details Activity。
A) 登录活动:登录活动方向为纵向
B) 投诉活动:投诉活动方向为横向
C) 客户详细信息活动:客户详细信息活动方向为纵向
流程是 A => B => C
我在应用程序中使用英语和马拉地语两种语言。
一旦我为第一个活动(整个应用程序)选择了马拉地语。 即登录活动
前面的其他活动应遵循相同的语言环境。
但是当 B) 投诉活动 以横向模式启动时,它会更改为默认语言环境,即英语。并且应用程序会继续以英语语言运行。
即使活动改变了方向,我应该如何为整个应用设置选定的语言环境。
我的尝试
1) 添加
android:configChanges="locale|orientation|screenSize"
在每个活动的清单文件中
2) 在意图中传递语言并检索其他活动并设置语言环境
登录活动
Intent i = new Intent(Login_Activity.this, Complaint_List_Activity_2.class);
i.putExtra("lang",lang );// lang ="language Code"
startActivity(complaint_list_activity_intent);
finish();
投诉活动
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_compalint__list__activity_2);
Intent pre_intent = getIntent();
lang = pre_intent.getStringExtra("lang");
Configuration config = new Configuration();
config.locale = new Locale(lang);
}
请解释一下,我应该在哪里编写代码来设置投诉活动中的区域设置以及如何
【问题讨论】:
-
你应该使用
updateConfiguration(),就像在this答案中一样。 -
但是在投诉活动的 onCreate 或投诉活动的 onStart 中
-
感谢@AndriyOmelchenko 的建议
标签: android android-intent locale