У вас есть эта строка:
txtDurationValue = (TextView)view.findViewById(R.id.txtDurationValue);
Я предполагаю, что у вас есть TextView txtDurationValue;
в вашем адаптере, который вы не включили в исходный код вашего вопроса? Если его там нет, добавьте это внутрь адаптера. (Технически вы не должны предоставлять необработанные значения / представления из адаптера, вы должны использовать get / sets, но это должно работать, пока вы не выполните рефакторинг):
public TextView txtDurationValue;
После этого вы сможете добавить
public void setText(String text) {
txtDurationValue.setText(text);
}
Это будет означать, что вы можете изменить это //pager.getAdapter (). NotifyDataSetChanged (); чтобы:
((ViewPagerAdapter)pager.getAdapter()).setText(text);
Чего он не делает, так это заботится о том, что вы устанавливаете таймер в onCreate (), который срабатывает до того, как будут созданы элементы.
Это мой любимый взлом Android (вы можете использовать indicator
или любой другой вид, на который у вас есть ссылка. В данном случае это не имеет значения). Он запускает код сразу после отображения представления:
ViewTreeObserver vto = indicator .getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
view.getViewTreeObserver().removeGlobalOnLayoutListener(this);
myTimer.schedule(new TimerTask() {
public void run() {
timerMethod();
}
}, 0, 1000);
});