我正在尝试将当前日期显示在我的标签上,但左边的日期并没有减少一个。我将今天的日期设置为OneFragment,然后在TwoFragment中将日期增加1。这部分工作正常,但是当我试图从今天开始上一个日期出现在ThreeFragment中时,它没有按预期工作。
当前:ThreeFragment(2016年5月1日| 2016年4月30日)OneFragmet(2016年5月2日)TwoFragment(2016年5月3日| 2016年5月4日)
我想要ThreeFragment标签显示这样的日期:(2016年4月30日| 2016年5月1日)
我做错了什么?任何帮助将不胜感激,谢谢。
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;
}
答案 0 :(得分: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);
}
答案 1 :(得分:0)
尝试将第一个循环更改为:
for(int j = 2; j > 0; j--) {
Date decr = addDays(today, -j);
String yesterday = dateFormat1.format(decr.getTime());
adapter.addFragment(new ThreeFragment(), yesterday);
}