0

我正在调用以下函数来添加日历事件(主要取自roman10):

private void addEvent() {
    Intent l_intent = new Intent(Intent.ACTION_EDIT);
    l_intent.setType("vnd.android.cursor.item/event");
    l_intent.putExtra("title", "roman10 calendar tutorial test");
    l_intent.putExtra("description", "This is a simple test for calendar api");
    l_intent.putExtra("eventLocation", "@home");
    l_intent.putExtra("beginTime", System.currentTimeMillis());
    l_intent.putExtra("endTime", System.currentTimeMillis() + 1800*1000);
    l_intent.putExtra("allDay", 0);
    l_intent.putExtra("eventStatus", 1);
    l_intent.putExtra("visibility", 0);
    l_intent.putExtra("transparency", 0);
    l_intent.putExtra("hasAlarm", 1);

    try {
        startActivity(l_intent);
    } catch (Exception e) {
        Toast.makeText(this.getApplicationContext(), "Sorry, no compatible calendar is found!", Toast.LENGTH_LONG).show();
    }
}

完成此意图后,我想手动刷新我的列表活动,它只是保存所有用户事件的列表(我希望它立即反映更改)。有谁知道这样做的方法?是否有任何特定功能在我可以修改的这个意图完成时被调用?

4

1 回答 1

3

你最好的选择是使用 startActivityForResults(Intent, id)

static private final int CALENDAR_DONE 101;
startActivityForResults(l_intent, CALENDAR_DONE);

然后将此功能添加到您的活动中:

public void onActivityResult(int reqCode, int resultCode, Intent data) {
    super.onActivityResult(reqCode, resultCode, data);

    switch (reqCode) {
      case (CALENDAR_DONE) :
        if (resultCode == Activity.RESULT_OK) {
          //Do stuff here
        }       
      break;
    }
  }
于 2012-11-21T20:52:49.560 回答