android - 语言更改按钮
问题描述
我将代码放在设置片段中,但是在我选择语言后它不会更改语言,尽管我有那个语言字符串文件夹。我相信我需要刷新活动,但这是片段,我不知道该怎么做。
public class Settings extends Fragment {
Locale myLocale;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_settings, container, false);
String [] values =
{"Please Select Language","Myanmar","English",};
Spinner spinner = (Spinner) v.findViewById(R.id.spinner1);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_spinner_item, values);
adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener () {
public void onItemSelected(AdapterView<?> parent, View view,
int pos, long id) {
if (pos == 1) {
Toast.makeText(parent.getContext(),
"You have selected Myanmar", Toast.LENGTH_SHORT)
.show();
setLocale("my");
} else if (pos == 2) {
Toast.makeText(parent.getContext(),
"You have selected English", Toast.LENGTH_SHORT)
.show();
setLocale("en");
}
}
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
return v;
}
public void setLocale(String lang) {
myLocale = new Locale (lang);
Resources res = getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = myLocale;
res.updateConfiguration(conf, dm);
Intent intent = new Intent(getActivity(), Settings.class);
startActivity(intent);
}
}
解决方案
FragmentTransaction t = getActivity().getSupportFragmentManager().beginTransaction();
t.setReorderingAllowed (false);
t.detach(this).attach(this).commitAllowingStateLoss();
推荐阅读
- haskell - Haskell - 在显示 2 次幂的函数中过滤赔率
- c# - 使用延续任务的链式任务
- spring - 如何使用firebase令牌ID在spring boot中实现身份验证?
- javascript - webpack中动态导出js文件
- python - Django 博客应用程序不会显示编辑帖子页面
- python - 如何读取 csv 文件并将逗号从数字转换为点?
- android - 带有 Flutter 的 AppCenter(IOS 和 Android)
- r - sqlQuery 根据 R 对象将新数据附加到 R 对象
- r - 我需要创建一个函数来查找第一个 N (作为参数传递)整数的总和
- reactjs - 如何将道具传递给 MUI 样式菜单以实现某些条件样式?