Java 有没有一种方法可以重新创建;“家长”;从静态类到静态类?
我正在开发一个应用程序,在这个应用程序中,我试图通过首选项屏幕和首选项列表更改应用程序中的语言。我能够倾听选择,但我似乎无法重新创建“家长”类。在任何地方,我都通过在onCreate(…)中设置语言选择来更改语言。但是,您将如何更新当前活动中的语言?我在静态课堂上听到语言选择的变化,如下所示:Java 有没有一种方法可以重新创建;“家长”;从静态类到静态类?,java,android,fragment,preference,recreate,Java,Android,Fragment,Preference,Recreate,我正在开发一个应用程序,在这个应用程序中,我试图通过首选项屏幕和首选项列表更改应用程序中的语言。我能够倾听选择,但我似乎无法重新创建“家长”类。在任何地方,我都通过在onCreate(…)中设置语言选择来更改语言。但是,您将如何更新当前活动中的语言?我在静态课堂上听到语言选择的变化,如下所示: public class PrefActivity extends PreferenceActivity { @Override public onCreate(Bundle savedInst
public class PrefActivity extends PreferenceActivity {
@Override
public onCreate(Bundle savedInstanceState) {
//Code
}
public static class PreferenceFrag extends PreferenceFragment {
//onCreate method
.... SharedPreferences.OnSharedPreferenceChangeListener() {
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String s) {
//Reads the changes and sets new locale
//How would you make the changes come instant to the R.xml.Preference
}
}
}
我想我是通过以下方法找到答案的:
getActivity().recreate();
请注意,如果您有一个静态的内部类,那么它与外部类没有特殊的关系,因此它只是一个名称空间。因此,您的内部类需要获取对外部类(当前活动)实例的引用。我对Android开发不太熟悉,但考虑一下内部片段类是否需要是静态的。让它成为一个内部类,即删除
静态的
。NBstatic inner
在@Thomas@一词中是矛盾的。@marqueisoflorne你是对的,我的错。我用“内部”作为“在另一个类中”,但正确的术语应该是“静态嵌套”-“内部”应该是“非静态嵌套”()也许我问错了问题,但似乎我必须是静态的,因为它实现了PreferenceFragment。但是我想我通过使用code
getActivity().reacreate()找到了解决方案;