尝试使用simpledatetime格式将以下字符串解析为日期时间时,会出现如下错误:
02-16 13:07:40.455: E/AndroidRuntime(676): FATAL EXCEPTION: main
02-16 13:07:40.455: E/AndroidRuntime(676): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.timer/com.example.timer.MainActivity}: android.content.res.Resources$NotFoundException: String resource ID #0x1
我写的代码如下。请告诉我这个错误的可能原因是什么。
String date1="17-Feb-14 12:54:34 AM";
String date2="15-Feb-14 9:55:23 PM";
SimpleDateFormat sdf=new SimpleDateFormat("dd-MMM-yy hh:mm:ss aa");
try {
Date dt1=sdf.parse(date1);
Date dt2=sdf.parse(date2);
int value=dt1.compareTo(dt2);
Toast.makeText(MainActivity.this, value, Toast.LENGTH_LONG).show();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
我从服务器获取此日期和时间格式作为字符串。所以我需要将其转换为日期和时间以便在客户端进行处理。请告诉我怎么做。
答案 0 :(得分:3)
Toast.makeText(MainActivity.this, String.valueOf(value), Toast.LENGTH_LONG).show();
您正尝试在Toast
P.S。您可以使用int
作为邮件,但只有当您在R
课程中申请资源时,请在此处查看http://developer.android.com/reference/android/widget/Toast.html#makeText%28android.content.Context,%20int,%20int%29
答案 1 :(得分:1)
您对int
使用了value
,但Toast.makeText()
需要字符串或字符串资源的ID(例如R.string.helloWorld
)。
更改
Toast.makeText(MainActivity.this, value, Toast.LENGTH_LONG).show();
要
Toast.makeText(MainActivity.this, value.toString(), Toast.LENGTH_LONG).show();
答案 2 :(得分:1)
原因,第二个参数是int / String类型。如果您传递了指向任何资源的int,那么Android会检查资源id
中是否存在此R
,否则会抛出ResourcesNotFound
。
Android生成id
中每个资源的R.java
。
所以在你的情况下,你已经传递了整数值,并且android试图查看id
中不可用的R.java
。
所以你必须使用.toString()
方法将整数转换为字符串。
这是方法重载,您可以在其中传递资源ID或第二个参数中的任何字符串。