Изменить элемент в ViewPager по тревоге
Я пытаюсь сделать приложение, которое сбрасывает каждую полночь в представление по умолчанию.
Итак, я настроил будильник в своем MainActivity и AlarmReceiver, который расширяет BroadcastReceiver
Это класс AlarmReceiver:
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// Will be executed when Alarm is fired
Toast.makeText(context, "HELLO TEST", Toast.LENGTH_SHORT).show();
}
}
И это мой MainActivity
// VerticalViewPager & adapter
VerticalViewPager verticalViewPager = (VerticalViewPager) findViewById(R.id.verticalViewPager);
adapterViewPager = new CustomPagerAdapter(getSupportFragmentManager());
verticalViewPager.setAdapter(adapterViewPager);
В этом примере будильник срабатывает каждый день в полночь и пишет тостовое сообщение. Вместо этого я хочу, чтобы будильник изменил текущий элемент, отображаемый в ViewPager:
// Will set the view I want
verticalViewPager.setCurrentItem(3);
Но, конечно, я не могу написать это под onReceive
метод, потому что он не знает, что verticalViewPager
является. Я также новичок в ООП.
1 ответ
Существует множество способов связать AlarmReceiver с теми компонентами, которые фактически способны полностью контролировать verticalViewPager. Например, EventBus(немного устаревший), RXjava(тема публикации) и т. Д.
И если приложение не всегда запускается на переднем плане в полночь, это скорее похоже на глубокую ссылку на целевую страницу (MainActivity?), А затем обновляет Viewpager.