Android: вызов метода из вызова деятельности - PullRequest
1 голос
/ 11 марта 2012

В своей деятельности по запросу пользователя на экране предпочтений я вызываю:

startActivity(new Intent(this, Preferences.class));

Класс настроек определяется следующим образом:

public class Preferences extends PreferenceActivity implements OnSharedPreferenceChangeListener {
    ...
    public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
        ...
    }

}

Мне нужно реализовать OnSharedPreferenceChangeListener в моих настройкахкласс, потому что я хочу иметь возможность - например - отключить элемент предпочтений на основе конкретного выбора.Но мне нужно было бы реализовать это в моей основной деятельности, чтобы реагировать на изменения предпочтений.

К сожалению, onSharedPreferenceChanged () запускается только в моем классе предпочтений, а не в моем основном действии: как я могу заставить его бытьуволен в действиях бота?

Или - как я могу вручную вызвать onSharedPreferenceChanged () в моей основной деятельности из onSharedPreferenceChanged () в операции предпочтений?

Ответы [ 3 ]

2 голосов
/ 11 марта 2012

в вашей основной деятельности, вы можете зарегистрировать слушателя для изменения настроек:

SharedPreferences prefs = PreferenceManager
    .getDefaultSharedPreferences(this);
prefs.registerOnSharedPreferenceChangeListener(this);

, и тогда вы будете применять SharedPreferences.OnSharedPreferenceChangeListener в своей деятельности, используя собственный метод onSharedPreferenceChanged.

1 голос
/ 11 марта 2012

Ну, нет смысла наблюдать за изменением предпочтений в деятельности, которая в данный момент не «активна». Вместо этого вы должны обрабатывать события жизненного цикла вашей основной деятельности, такие как onResume, onRestart и т. Д.

0 голосов
/ 11 марта 2012

Если вы хотите сделать некоторые функции доступными из обоих видов деятельности, лучше всего сделать это, включив этот код в статический метод, который можно вызывать из любого места. В Android действия не связаны, у вас нет доступа от одного действия к экземпляру другого действия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...