【发布时间】:2014-11-11 20:00:03
【问题描述】:
我正在做一个获取通话记录的程序,但我遇到了一些问题。 我在这个程序运行时发生了崩溃,崩溃是数字格式异常无效 int 1415715471534。任何人都可以解决这个问题吗?这是我的代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_satu);
Cursor mCursor = managedQuery(CallLog.Calls.CONTENT_URI, null, null, null, null);
int number = mCursor.getColumnIndex(CallLog.Calls.NUMBER);
int date = mCursor.getColumnIndex(CallLog.Calls.DATE);
int duration = mCursor.getColumnIndex(CallLog.Calls.DURATION);
int type = mCursor.getColumnIndex(CallLog.Calls.TYPE);
StringBuilder sb = new StringBuilder();
while(mCursor.moveToNext()){
String phnNumber = mCursor.getString((int) number);
String callDuration = mCursor.getString(duration);
String callType = mCursor.getString(type);
String callDate = mCursor.getString(date);
Date d = new Date(callDate);
String callTypeStr = null;
int dircode = Integer.parseInt(callType);
switch (dircode){
case CallLog.Calls.OUTGOING_TYPE:
callTypeStr = "Outgoing";
break;
case CallLog.Calls.INCOMING_TYPE:
callTypeStr = "Incoming";
break;
case CallLog.Calls.MISSED_TYPE:
callTypeStr = "Missed";
break;
}
sb.append("Phone number" + phnNumber);
sb.append("Call Duration" + callDuration);
sb.append("Call type" + callTypeStr);
sb.append("Call date" + d);
sb.append("-------------------");
sb.append(System.getProperty("line.separator"));
mCursor.close();
}
TextView callDetails = (TextView) findViewById(R.id.callog);
callDetails.setText(sb.toString());
}
【问题讨论】:
-
你能发布异常的踪迹吗?哪一行是异常?
-
当我运行它时,它崩溃并给出一个 logcat 错误:java.lang.NumberFormatException:invalid int:"1415715471534"
-
异常跟踪应该提供更多信息:错误在哪一行,在哪个函数中,等等
-
只使用 long 而不是 int。