具有以下设置:
MainActivity 类 - 扩展 Activity
MyLayout 类 - 扩展 View
Prefs 类 - 扩展 PreferenceActivity 并实现 OnSharedPreferenceChangeListener
MainActivity 创建一个 MyLayout 类并将其设置为其内容 View 。一旦用户按下菜单,Prefs 类就会启动,用户可以在其中更改一些设置。
我想要的是,一旦用户更改设置,将调用 Prefs 类中重载的 OnsharedPreferenceChanged 方法,然后我想从那里调用在 MainActivity 中创建的 MyLayout 类的公共(public)方法。
我该怎么做?
最佳答案
不要在 preferenceactivity 中重载 onSharedPreferenceChanged 方法。在您的 MainActivity 中获取共享首选项的实例,然后在您的 MainActivity 中注册一个 onsharedpreferencechangedlistener
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
pref.registerOnSharedPreferenceChangeListener(prefListener);
然后你可以创建一个新的首选项监听器
OnSharedPreferenceChangeListener prefListener = new OnSharedPreferenceChangeListener() {
@Override
public void onSharedPreferenceChanged(
SharedPreferences sharedPreferences, String key) {
// Do stuff
}
};
你还应该在 onPause() 中注销监听器,除非你需要它持续存在,否则在 onStop() 中注销它
关于android - 从另一个 Activity 访问一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3541200/