我在android中创建一个应用程序,用于使用csv文件进行呼叫日志备份和恢复。备份已成功创建,但恢复所有呼叫日志时未从csv恢复。这是我为备份编写的代码
while((row = csvReader.readNext()) != null)
{
RestoreCallLogs(row[0],row[1],row[2],row[3],row[4]);
}
public void RestoreCallLogs(String Name,String number,String Date,String Type,String Duration){
ContentValues values = new ContentValues();
values.put(CallLog.Calls.NUMBER, number);
values.put(CallLog.Calls.DATE, Date);
values.put(CallLog.Calls.DURATION,Duration);
values.put(CallLog.Calls.TYPE, Type);
if(Name!="Unknown")
values.put(CallLog.Calls.CACHED_NAME, Name);
getContentResolver().insert(CallLog.Calls.CONTENT_URI, values);
}
答案 0 :(得分:0)
你有一个try-catch块,它隐藏了这里生成的异常:
RestoreCallLogs(row[0],row[1],row[2],row[3],row[4]);
你不应该在不理解它的作用的情况下使用try-catch。
修复:
String[] row;
while((line = csvReader.readNext()) != null){
row = line.split(",");
RestoreCallLogs(row[0],row[1],row[2],row[3],row[4]);
}
请阅读.split()
的文档。您需要做额外的工作来处理联系人记录字符串中的逗号和其他非字母数字字符。您还假设csv仅包含5列。你能保证吗?
最后,请使用公认的约定来命名Java中的标识符。使用大写字母来启动变量名称会使您的代码难以阅读。
[编辑]
我不知道您的代码是如何编译的。请显示row
和csvReader
的声明。