【发布时间】:2014-02-25 19:27:14
【问题描述】:
我对我的应用程序中的所有活动都使用相同的微调器。假设微调器中的项目是英语,芬兰语,波兰语,等等。当我在一项活动中选择芬兰语时,微调器的下拉菜单会关闭,并且可以在微调器上看到芬兰语。但是当我进入下一个活动时,它不再显示芬兰语,而是在顶部显示英语(项目)。是否有任何方法可以使已选择所有活动的微调器上的项目出现。或者,除非未更改,否则不应更改。 在 BaseActivity 中;
int currentLanguage = spinner.getSelectedItemPosition();
SharedMemory.getInstance().setCurrentPosition(currentLanguage);
Log.i("SET POSITION", Integer.toString(currentLanguage));
在其他activity中保存item位置的状态;
int position = SharedMemory.getInstance().getCurrentPosition();
Base_Activity.spinner.setSelection(position);
Log.i("GET POSITION", Integer.toString(position));
我设法将所选语言设置为 Singleton 类的 SharedMemory。 但是我怎样才能在所有活动中仍然获得相同的 currentLanguage。当我更改活动时,我无法获得它。 注意:此微调器位于 Base_Activity 类的操作栏中,所有其他活动都扩展了此类。 谢谢。
【问题讨论】:
-
尝试将选择存储在 sharedpreferences 中,当您访问 onResume 中的其他活动时,从共享首选项中获取值并相应地设置微调器位置。
-
@Rat-a-tat-a-tatRatatouille 我正在使用单例类。它与共享偏好不同吗?我不喜欢在项目结束时更改它。
-
SharedMemory.getInstance().getCurrentLanguage();你的意思是说这不会返回正确的值?您是否首先尝试在其他活动中调用它?
-
setCurrentLanguage 应该是静态的,以便您获取最近更新的值
-
在 BaseActivity 中,我将微调器的选定项设置为 currentLanguage 并存储在 Singleton 类中。当我打开应用程序时,它显示主要活动,对吗?当我在那里选择一项时,那会是什么?它应该设置或获取 CurrentLanguage。由于 Base Activity,我的应用程序的所有活动都可以访问微调器