2016-05-03 3 views
0

Я пытаюсь получить текущую дату на вкладках, но дата влево не уменьшается на единицу. Я устанавливаю сегодняшнюю дату в OneFragment, а затем увеличиваю дату на 1 в TwoFragment. Эта часть работает нормально, но когда я пытаюсь получить предыдущую дату с сегодняшнего дня, чтобы появиться в ThreeFragment, она не работает должным образом.Настройка дат динамически динамически

ток: ThreeFragment (1 мая 2016 | 30 апреля 2016) OneFragmet (2 мая 2016) TwoFragment (3 мая 2016 | 4 мая 2016)

Я хочу ThreeFragment вкладки, чтобы показать даты, как это: (30 апреля 2016 года 1 мая 2016 года)

Что я делаю неправильно? Любая помощь будет оценена, спасибо.

private void setupViewPager(ViewPager viewPager) { 
    ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); 
    Date today = new Date(); 
    Calendar cal = Calendar.getInstance(); 
    DateFormat dateFormat1 = new SimpleDateFormat("EEEE MMM dd, yyyy", Locale.getDefault()); 
    String todate = dateFormat1.format(today.getTime()); 

    for(int j = 2; j >= 0; j--) { 
     Date decr = addDays(today, -1); 
     String yesterday = dateFormat1.format(decr.getTime()); 
     adapter.addFragment(new ThreeFragment(), yesterday); 
    } 

    adapter.addFragment(new OneFragment(), todate); 

    for(int i = 0; i < 2; i++) { 
     cal.add(Calendar.DAY_OF_MONTH, 1); 
     String tomo = dateFormat1.format(cal.getTime()); 
     adapter.addFragment(new TwoFragment(), tomo); 

    } 

    viewPager.setAdapter(adapter); 
} 

public static Date addDays(Date d, int days) 
{ 
    d.setTime(d.getTime() + days * 1000L * 60L * 60L * 24L); 
    return d; 
} 

enter image description here

ответ

1

Как ccsnoopy сказал, но метод addDays оказывает побочный эффект на переменную сегодня (поэтому его почти работал раньше), поэтому попробуйте это вместо этого.

for(int j = 2; j > 0; j--) { 
    Date decr = addDays(new Date(), -j); 
    String yesterday = dateFormat1.format(decr.getTime()); 
    adapter.addFragment(new ThreeFragment(), yesterday); 
} 
+0

Это сработало для меня. Большое вам спасибо за помощь. –

0

Попробуйте изменить свой первый цикл это:

for(int j = 2; j > 0; j--) { 
    Date decr = addDays(today, -j); 
    String yesterday = dateFormat1.format(decr.getTime()); 
    adapter.addFragment(new ThreeFragment(), yesterday); 
} 
+0

Это не сработало для меня, но спасибо за вход. –

Смежные вопросы