Nano Hash - криптовалюты, майнинг, программирование

Android: вызвать метод из вызывающей активности

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

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

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

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

}

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

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

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


Ответы:


1

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

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

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

11.03.2012
  • Спасибо!!! Я уже делал registerOnSharedPreferenceChangeListener() в своей основной деятельности, но по какой-то причине он был закомментирован! Спасибо за оперативность... 11.03.2012

  • 2

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

    11.03.2012

    3

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

    11.03.2012
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..