android - 从另一个 Activity 访问一个类

标签 android android-activity android-preferences

具有以下设置:

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/

相关文章:

java.lang.OutOfMemory错误: GC overhead limit exceeded facing this error while executing android project

android - 如何返回 Activity 堆栈中某处的 Activity ?

java - 运行时异常 "can' t 在未调用 Looper.prepare() 的线程内创建处理程序”

android 从一个 Activity 切换到另一个 Activity

class - 安卓状态机

android - 从自定义适配器获取项目位置

android - 是否有类似于铃声偏好的振动偏好?

java - 时间选择器整数错误

android - 如何在 Flutter 中为标签栏创建未选中的指示器

android - 此应用与您的设备不兼容