1

私はこのコードを使おうとしました(チュートリアルで見たように)

Calendar cal = Calendar.getInstance();  
Intent intent = new Intent(Intent.ACTION_EDIT);
intent.setType("vnd.android.cursor.item/event");
intent.putExtra("beginTime", dateStart.getTime());
intent.putExtra("allDay", false);
intent.putExtra("rrule", "FREQ=DAILY");
intent.putExtra("endTime", dateEnd.getTime());
intent.putExtra("hasAlarm", 1);
startActivity(intent);

Androidの統合カレンダーにイベントを追加するには

しかし、私が書いたように、行にNullPointerExceptionエラーが発生します

startActivity(intent);

このスタックで

07-17 19:12:05.469: W/System.err(30939): java.lang.NullPointerException
07-17 19:12:05.469: W/System.err(30939):    at android.app.Activity.startActivityForResult(Activity.java:2827)
07-17 19:12:05.469: W/System.err(30939):    at android.app.Activity.startActivity(Activity.java:2933)
07-17 19:12:05.469: W/System.err(30939):    at myapplication.beachparty.utility.MyUtility.addEventToCalendar(MyUtility.java:44)
07-17 19:12:05.469: W/System.err(30939):    at myapplication.beachparty.it.PartyDetails$2.onClick(PartyDetails.java:114)
07-17 19:12:05.469: W/System.err(30939):    at android.view.View.performClick(View.java:2485)
07-17 19:12:05.479: W/System.err(30939):    at android.view.View$PerformClick.run(View.java:9080)
07-17 19:12:05.479: W/System.err(30939):    at android.os.Handler.handleCallback(Handler.java:587)
07-17 19:12:05.499: W/System.err(30939):    at android.os.Handler.dispatchMessage(Handler.java:92)
07-17 19:12:05.499: W/System.err(30939):    at android.os.Looper.loop(Looper.java:130)
07-17 19:12:05.499: W/System.err(30939):    at android.app.ActivityThread.main(ActivityThread.java:3687)
07-17 19:12:05.499: W/System.err(30939):    at java.lang.reflect.Method.invokeNative(Native Method)
07-17 19:12:05.499: W/System.err(30939):    at java.lang.reflect.Method.invoke(Method.java:507)
07-17 19:12:05.499: W/System.err(30939):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
07-17 19:12:05.499: W/System.err(30939):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
07-17 19:12:05.499: W/System.err(30939):    at dalvik.system.NativeStart.main(Native Method)
07-17 19:12:07.069: W/System.err(30939): java.lang.NullPointerException
07-17 19:12:07.069: W/System.err(30939):    at android.app.Activity.startActivityForResult(Activity.java:2827)
07-17 19:12:07.069: W/System.err(30939):    at android.app.Activity.startActivity(Activity.java:2933)
07-17 19:12:07.069: W/System.err(30939):    at myapplication.beachparty.utility.MyUtility.addEventToCalendar(MyUtility.java:44)
07-17 19:12:07.069: W/System.err(30939):    at myapplication.beachparty.it.PartyDetails$3.onClick(PartyDetails.java:128)
07-17 19:12:07.069: W/System.err(30939):    at android.view.View.performClick(View.java:2485)
07-17 19:12:07.069: W/System.err(30939):    at android.view.View$PerformClick.run(View.java:9080)
07-17 19:12:07.069: W/System.err(30939):    at android.os.Handler.handleCallback(Handler.java:587)
07-17 19:12:07.069: W/System.err(30939):    at android.os.Handler.dispatchMessage(Handler.java:92)
07-17 19:12:07.069: W/System.err(30939):    at android.os.Looper.loop(Looper.java:130)
07-17 19:12:07.069: W/System.err(30939):    at android.app.ActivityThread.main(ActivityThread.java:3687)
07-17 19:12:07.069: W/System.err(30939):    at java.lang.reflect.Method.invokeNative(Native Method)
07-17 19:12:07.069: W/System.err(30939):    at java.lang.reflect.Method.invoke(Method.java:507)
07-17 19:12:07.069: W/System.err(30939):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
07-17 19:12:07.079: W/System.err(30939):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
07-17 19:12:07.079: W/System.err(30939):    at dalvik.system.NativeStart.main(Native Method)


dateStart

広告 dateEndDate、イベントの日、口、年、時刻を示すオブジェクトです

私もこれらの行を変更しようとしました

intent.putExtra("beginTime", cal.getTimeInMillis());

intent.putExtra("endTime", cal.getTimeInMillis()+60*60*1000);

なにが問題ですか?

NB私はエミュレーターとサムスンギャラクシーでコードを試しました。そして、APIレベル10(GingerBread)を使用します

4

2 に答える 2

3

メソッドを呼び出すだけで、このアクティビティを別のクラスから開始することはできません。

この線

startActivity(intent);

コンテキストがないため、NullPointerException が発生します

メソッドにを渡してContext、次のように記述します。

mycontext.startActivity(intent);

このように動作するはずです。

于 2012-07-17T18:00:17.447 に答える
0

dateStartオブジェクトとdateEndオブジェクトを確認してください。それらはnullである可能性があります。インテントに追加する行にブレークポイントを設定し、それらの変数がnullかどうかを確認することをお勧めします。

于 2012-07-17T16:37:41.437 に答える