gpt4 book ai didi

android - 从android删除事件返回空指针异常

转载 作者:行者123 更新时间:2023-11-30 04:02:03 34 4
gpt4 key购买 nike

当我尝试从我的日历中删除特定事件时,它返回空指针异常

但是当我删除所有事件时它工作正常

我从插入查询中得到了路径并尝试了几乎所有的方法

这是我的代码

我的删除事件类

public class DeleteEvent extends Activity {

public DeleteEvent() {
// TODO Auto-generated constructor stub
}

public int DeleteCalendarEntry(int entryID) {
int iNumRowsDeleted = 0;

Uri eventsUri = Uri.parse( "content://com.android.calendar/events");

Uri eventUri = ContentUris.withAppendedId(eventsUri, entryID);

iNumRowsDeleted = getContentResolver().delete(eventUri, null, null);

return iNumRowsDeleted;


}
}

//////////////////////////////////////////////////

image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
chose_add_view_delete();
}
});

当点击单元格时执行这个:-

public void chose_add_view_delete() {
final CharSequence[] items = { "Add Event", "View Event","Delete Event" };
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("What !?");
builder.setSingleChoiceItems(items, 0,new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
if (which == 0) {
DeleteEvent del = new DeleteEvent();
int i = del.DeleteCalendarEntry(82);
dialog.dismiss();
}

//////////////////////////////////////////////

09-10 12:28:01.385: E/AndroidRuntime(22297): FATAL EXCEPTION: main
09-10 12:28:01.385: E/AndroidRuntime(22297): java.lang.NullPointerException
09-10 12:28:01.385: E/AndroidRuntime(22297): at android.content.ContextWrapper.getContentResolver(ContextWrapper.java:90)
09-10 12:28:01.385: E/AndroidRuntime(22297): at com.iphase.Albayan.DeleteEvent.DeleteCalendarEntry(DeleteEvent.java:25)
09-10 12:28:01.385: E/AndroidRuntime(22297): at com.iphase.Albayan.MainActivity$9.onClick(MainActivity.java:475)
09-10 12:28:01.385: E/AndroidRuntime(22297): at com.android.internal.app.AlertController$AlertParams$3.onItemClick(AlertController.java:935)
09-10 12:28:01.385: E/AndroidRuntime(22297): at android.widget.AdapterView.performItemClick(AdapterView.java:284)
09-10 12:28:01.385: E/AndroidRuntime(22297): at android.widget.ListView.performItemClick(ListView.java:3746)
09-10 12:28:01.385: E/AndroidRuntime(22297): at android.widget.AbsListView$PerformClick.run(AbsListView.java:1980)
09-10 12:28:01.385: E/AndroidRuntime(22297): at android.os.Handler.handleCallback(Handler.java:587)
09-10 12:28:01.385: E/AndroidRuntime(22297): at android.os.Handler.dispatchMessage(Handler.java:92)
09-10 12:28:01.385: E/AndroidRuntime(22297): at android.os.Looper.loop(Looper.java:130)
09-10 12:28:01.385: E/AndroidRuntime(22297): at android.app.ActivityThread.main(ActivityThread.java:3691)
09-10 12:28:01.385: E/AndroidRuntime(22297): at java.lang.reflect.Method.invokeNative(Native Method)
09-10 12:28:01.385: E/AndroidRuntime(22297): at java.lang.reflect.Method.invoke(Method.java:507)
09-10 12:28:01.385: E/AndroidRuntime(22297): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907)
09-10 12:28:01.385: E/AndroidRuntime(22297): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665)
09-10 12:28:01.385: E/AndroidRuntime(22297): at dalvik.system.NativeStart.main(Native Method)

最佳答案

Uri eventUri = Uri.parse("content://calendar/events");  // or "content://com.android.calendar/events" 


Cursor cursor = contentResolver.query(eventUri, new String[]{"_id"}, "calendar_id = " + calendarId, null, null); // calendar_id can change in new versions

while(cursor.moveToNext()) {
Uri deleteUri = ContentUris.withAppendedId(eventUri, cursor.getInt(o));

contentResolver.delete(deleteUri, null, null);
}

关于android - 从android删除事件返回空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12341006/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com