我有一个ListVIEw和多个布局,当我单击ListVIEw项时,所有布局都已设置,单击的每个项都包含不同的布局,并且我在一个布局上通过单选按钮选择了两种语言.之后,当我单击项目字符串时,会刷新,但是Imagebutton不会使用其他语言刷新.我已经有两种语言的图像,并且我所有的布局都保存在一个数组中.
我的代码如下:
当选择语言后单击“保存”按钮时:
if (lang_selected.equalsIgnoreCase("English")) { Locale locale = new Locale("es");Locale.setDefault(locale);Configuration config = new Configuration();config.locale = locale; context.getResources().updateConfiguration(config,context.getResources().getdisplayMetrics());//initVIEw(vIEw);}else if(lang_selected.equalsIgnoreCase("Chinese")) {Locale locale = new Locale("zh");Locale.setDefault(locale);Configuration config = new Configuration();config.locale = locale; context.getResources().updateConfiguration(config, context.getResources().getdisplayMetrics()); //initVIEw(vIEw); }
当我单击列表视图项时:
protected voID onGeneralinfoItemClick(AdapterVIEw<?> parent, final int position) { final GeneralinfoData obj = (GeneralinfoData) parent .getItemAtposition(position); final VIEw layoutVIEw = obj.getDataLayoutVIEw(); detailCantiner.removeAllVIEws(); detailCantiner.addVIEw(layoutVIEw); try{ if(position==0) { tvTradename.setText(R.string.Trade); btnSaveTrade.setimageResource(R.drawable.general_info_save_button); String str=Util.getSharedPreference(context).getString("UserCompany", ""); Trade_name.setText(str); }if(position==1).......................**
解决方法:
您可以使用以下代码,并在代码中适当的地方使用这些功能.
For language change.... public voID changeLang(String lang) { if (lang.equalsIgnoreCase("")) return; iocLocale = new Locale(lang); Log.v("My Language",iocLocale + ""); saveLocale(lang); Locale.setDefault(iocLocale); androID.content.res.Configuration config = new androID.content.res.Configuration(); config.locale = iocLocale; getResources().updateConfiguration(config, getResources().getdisplayMetrics()); }For refreshing text.... private voID refreshTextchange() { txt_home.setText(getResources().getString(R.string.home)); txt_patIEnt.setText(getResources().getString(R.string.PatIEntt)); txt_staff.setText(getResources().getString(R.string.Stafff)); txt_makechange.setText(getResources().getString(R.string.MakeChangeAppointment)); txt_map.setText(getResources().getString(R.string.Map)); txt_contact.setText(getResources().getString(R.string.Contact)); }For saving the language.... public voID saveLocale(String lang) { SharedPreferences prefs = getSharedPreferences("com.ioc", Activity.MODE_PRIVATE); SharedPreferences.Editor editor = prefs.edit(); editor.putString("language", lang); editor.commit(); }For loading language i.e., first time you run your code... public voID loadLocale() { SharedPreferences prefs = getSharedPreferences("com.ioc", Activity.MODE_PRIVATE); String language = prefs.getString("language", ""); changeLang(language); iocLocale = new Locale(language); Log.v("My Language",language + ""); Log.d("c", "333333333"); }For checking language... private boolean checkLocal() { SharedPreferences prefs = getSharedPreferences("com.ioc", Activity.MODE_PRIVATE); String language = prefs.getString("language", ""); if(language.equalsIgnoreCase("pt")) return true; else return false; }
总结 以上是内存溢出为你收集整理的更改语言时如何刷新布局全部内容,希望文章能够帮你解决更改语言时如何刷新布局所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)