2

我正在 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);
    }
4

1 回答 1

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

于 2013-04-01T11:16:06.280 回答