Как автоматически изменить android данные menuItem после изменения данных общих настроек? - PullRequest
0 голосов
/ 19 апреля 2020

У меня есть общие преференции в моем приложении и из разных фрагментов и действий, я изменяю эти данные общих преференций. Но у меня есть menuItem с целочисленным значением. Таким образом, его следует обновлять, когда данные sharedpref меняются / обновляются из любого вида деятельности.

Пример. Это общая сумма денег, например, если пользователь покупает некоторые продукты из другого действия / фрагмента, цена должна быть обновлена.

Этот скриншот может помочь вам лучше понять. https://prnt.sc/s26pl0

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.search_bar, menu);
        pointsMenuItem =menu.findItem(R.id.points); 
pointsMenuItem.setTitle(String.valueOf(SaveSharedPreference.getPoints(getApplicationContext())));
        pointsMenuItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem menuItem) {
                pointsMenuItem.setTitle(String.valueOf(SaveSharedPreference.getPoints(getApplicationContext())));
                return false;
            }
        });

        return true;
    }

1 Ответ

0 голосов
/ 19 апреля 2020

Когда пользователь нажимает на элемент покупки после (обновление значения sharedpreferences), добавьте invalidateOptionsMenu() метод

invalidateOptionsMenu () принудительно перезагрузит onCreateOptionsMenu

Надеюсь, это поможет вам. ..

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