0
所以我所做的是我创建了两个按钮,当按下某个按钮时,意图启动并且片段中的语言环境发生更改。我通过获取所需的语言环境值来实现这一点,将其转换为字符串并将其放入额外的位置。它的工作activites之间完全正常,但是当我将它设置为一个片段,它给了我一个错误在片段中获取语言环境
这里是我的代码。
活动发送额外的:
bt2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Locale locale = new Locale("ar");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
String changela = locale.getLanguage();
Intent i = new Intent(Countrylist.this,PhraseDetailActivty.class);
i.putExtra("KEY",changela);
startActivity(i);
}
});
片接收区域设置:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments().containsKey(ARG_ITEM_ID)) {
// Load the dummy content specified by the fragment
// arguments. In a real-world scenario, use a Loader
// to load content from a content provider.
mItem = DummyContent.ITEM_MAP.get(getArguments().getString(ARG_ITEM_ID));
}
//error at the line under this comment
String changelee = getActivity().getIntent().getStringExtra("KEY");
Locale locale = new Locale(changelee);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getActivity().getResources().updateConfiguration(config,
getActivity().getResources().getDisplayMetrics());
它让我在这条线的错误。
String changelee = getActivity().getIntent().getStringExtra("KEY");
我也尝试做很多东西一样把reciving代码放到另一个地方,把它在管理活动中的片段,但没有工作。
注意:显示在我的代码上。我想这个问题是在这一行字符串 changelee = getActivity()。getIntent()。getStringExtra(“KEY”) 我应该改变一些事情。
试了一下,没有工作 –
请检查更新的答案。如果您仍然遇到问题,请尝试从您的片段中打印“changelee”,以确保传递的数据不为空。 –
是否这样做,而复兴的片段也给了我同样的错误,我该怎么办? –