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 に答える