2017-04-12 114 views
0

我试图设置一个方法来更改任务的状态。我跑的代码是这样的:无法将任务标记为未完成使用Java库的Google Tasks API的

private void changeStatus(String taskId, String listId, String newStatus) throws IOException { 
    Task task = mService.tasks().get(listId,taskId).execute(); 
    task.setStatus(newStatus); 
    mService.tasks().update(listId, task.getId(), task).execute(); 
} 

我传递的任务ID,列表ID和NEWSTATUS(这是可以“完成”或“needsAction”)。代码可以正常工作,将任务标记为已完成,但当我尝试将其标记为未完成时,它会给我一个“无效值”错误。

我试过的,而不是状态设置为“needsAction”,设置完成日期,像这样:

task.setCompleted(new DateTime(new Date().getTime())); 

但是,这并不工作。

这样做的正确方法是什么?

在此先感谢。

+0

我已经解决了它。 问题是我需要将完成的字段先设置为空。见答案。 –

回答

0

这是应该做的事:

private void changeStatus(String taskId, String listId, String newStatus) throws IOException { 
    Task task = mService.tasks().get(listId,taskId).execute(); 
    task.setCompleted(null); 
    task.setStatus(newStatus); 
    mService.tasks().update(listId, task.getId(), task).execute(); 
} 
相关问题