【发布时间】:2018-02-23 04:37:28
【问题描述】:
我将日期数据(来自CalendarView 对象)发送到第二个活动。
这是第一个活动:
String date = year + "/" + month + "/" + day;
intent=new Intent(Main3Activity.this,MainActivity.class);
intent.putExtra("date",date);
我通过将其转换为第二个活动中的时间戳来获得它。所以,我可以选择一个日期,我可以在第二个活动中看到它,它适用于 1 个日期。这是第二个活动:
// Create objects
Object[] item;
String s;
DateFormat formatter;
Date date2;
Timestamp timeStampDate;
List<Object[]> data;
long myTime;
myTime11 = sharedPreferences.getLong("long1",0);
s= getIntent().getStringExtra("date");
if(s != null) {
formatter = new SimpleDateFormat("yyyy/MM/dd");
try {
date2 = formatter.parse(s);
timeStampDate = new Timestamp((date2.getTime()));
myTime = timeStampDate.getTime();
editor.putLong("long1",myTime);
editor.commit();
} catch (ParseException e) {
e.printStackTrace();
}
item = new Object[COLUMN_NAMES.length];
item[0] = myTime11;
item[1] = 3;
item[2] = 6;
item[3] = 9;
data.add(item);
}
item = new Object[COLUMN_NAMES.length];
item[0] = timestamp;
item[1] = 0;
item[2] = 0;
item[3] = 0;
data.add(item);
cursor.addAll(data);
return item;
}
但是,当我选择第二个日期时,第一个数据会消失。
例如,我选择 13/09/2017。好的,它通过了,但是如果我想再次通过第一个活动从 CalendarView 对象传递 14/09/2017,那么我看不到 13/09/2017。它更改为 2017 年 9 月 14 日,我只能看到一个日期,即 2017 年 9 月 14 日。我该如何解决这个问题?
编辑:我认为这是因为 item[0] = myTime 这只是一个。如果我添加两个类似的,我可以并排传递两个日期,但我希望这适用于所有选定的日期。
Edit2:我使用来自 GitHub 的库。我的大部分代码都与此类似:link。我刚刚更改了具体细节。
Edit3:当我根据建议添加这些来解决问题时,我得到了这些错误。我该如何解决这个问题?
data.add((Object[]) data.get(0)[0]);
data.add((Object[]) data.get(1)[0]);
java.lang.IndexOutOfBoundsException:索引:0,大小:0
data.add( 0, (Object[]) item[0]);
data.add( 1, (Object[]) item[0]);
java.lang.ClassCastException:java.lang.Long 无法转换为 java.lang.Object[]
【问题讨论】:
-
您可以传递日期数组,而不是单个字符串,并在第二个活动中一次解析单个对象。
-
你能详细说明一下吗?喜欢一步一步。谢谢@procrastinator
-
你是如何传递两个日期的?例如,如果您传入
13/09/2017;14/09/2017,然后将输入日期拆分为';'您需要在拆分后格式化每个日期。 -
这是真的。我不能同时通过它们。当我通过其中一个时,它会随着另一个而改变。我在问如何在不拆分的情况下解决这个问题? @Sheldon
-
我的意思是在您的代码中拆分,而不是日期。我会输入一个答案。您仍然可以将它们作为一个字符串变量传递。
标签: java android date timestamp