且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何从外界作出“刷新”Android的主要活动?

更新时间:2023-01-25 21:28:40

设置在 OnShared preferenceChangeListener 监听你的 MainActivity 自动检测在preferences任何更改。

Set a OnSharedPreferenceChangeListener listener in your MainActivity to automatically detect any changes in the preferences.

共享preferencesListener

public class MainActivity extends ... {

    private SharedPreferences settings;
    private SharedPreferences.OnSharedPreferenceChangeListener listener;
    ...

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        settings = PreferenceManager.getDefaultSharedPreferences(this);
        listener = new SharedPreferences.OnSharedPreferenceChangeListener() {
            @Override
            public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
                // Refresh display
                refreshDisplay();
            }
        };

        // Register the listener on the SharedPreferences
        settings.registerOnSharedPreferenceChangeListener(listener);

        // Other code
    }

    public void refreshDisplay() {
        // Retrieve entries from sharedPreferences & display them, e.g
        String prefValue1 = settings.getString("key1", "default value 1");
        String prefValue2 = settings.getString("key2", "default value 2");

        // Update UI with these values
    }
}

编辑:

下面是如何你的 preferenceActivity 应该是:

public class SettingsActivity extends PreferenceActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // R.xml.settings refers to the XML layout file named "settings"
        // in your res/xml directory
        addPreferencesFromResource(R.xml.settings);
    }
}