如何从外界作出“刷新”Android的主要活动? [英] How to make the android main activity to 'reload' from outside?

查看:154
本文介绍了如何从外界作出“刷新”Android的主要活动?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有示出了从数据库中获取一些数据的机器人主要活动。现在我有一个 preferenceActivity 其中,当用户想要改变一些preference或删除数据库的内容所示。但是,如果是这样的话,我怎么强制从类中的刷新或主要活动的一些主要活动外?

I have an android main activity showing some data which are taken from the database. Now I have a PreferenceActivity which is shown when the user wants to change some preference, or delete the content of the database. But if this is the case, how do I force a 'reload' or something of the main activity from a class outside the main activity?

推荐答案

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

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

<一个href=\"http://developer.android.com/reference/android/content/Shared$p$pferences.OnShared$p$pferenceChangeListener.html\"相对=nofollow>共享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);
    }
}

这篇关于如何从外界作出“刷新”Android的主要活动?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆