2011-06-04 88 views
5

我在我的应用程序中遇到问题。我有一些名单,每个名单都有一个日期。如果列表的日期是今天我做了一个通知,并在我的通知中,我把这个列表中的项目。问题是,如果我的清单空我得到强制关闭。我只是在光标不为空的情况下才会发出通知,但看起来这不起作用。你能帮我找出问题在哪里吗?Android中的空游标

下面是代码的一部分:获取数据()之前

if (cr != null && cr.moveToFirst()) { 
    // ... 
} 

您需要moveToFirst:

cr = db.fetchListId(id); 
startManagingCursor(cr); 

s = new StringBuilder(100); 
if (cr != null) { 
    do { 
    String myList = ""; 
    myList += cr.getString(2) + " " + cr.getString(3) 
     + cr.getString(4) + "," + "\n"; 
    s.append(myList); 

    } while (cr.moveToNext()); 
    s.append('.'); 
    System.out.println("!!heyeheeye!" + s + "!!!!"); 
    hey(list); 
} 

where hey(list) is a function where is made the notification. 

    private void hey(String list) { 
    notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
    CharSequence NotificationTicket = "Hey"; 

    long when = System.currentTimeMillis(); 

    Notification notification = new Notification(R.drawable.icon, 
               NotificationTicket, when); 

    RemoteViews contentView = new RemoteViews(getPackageName(), 
              R.layout.proba); 
    contentView.setImageViewResource(R.id.image, R.drawable.icon); 
    contentView.setTextViewText(R.id.notif, 
           "Today,you must go for shopping for your list '" + list + "'. " 
           + "Don't forget!!!" + "\n" + "You must buy :" + "\n" 
           + s.toString() + "\n"); 
    notification.contentView = contentView; 


    Context context = getApplicationContext(); 

    Intent notifyIntent = new Intent(context, Lists.class); 

    Intent notificationIntent = new Intent(this, Lists.class); 
    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, 
                  notificationIntent, 0); 
    notification.contentIntent = contentIntent; 

    notificationManager.notify(ID_NOTIFICATION, notification); 
    notifyIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP 


       | Intent.FLAG_ACTIVITY_SINGLE_TOP); 
} 

回答

6

添加下面的检查,看是否游标有任何结果。因为你正在使用do ...而不是while(),所以你没有正确地初始化光标。

+0

谢谢。你说得对。现在,它的工作.. – Gaby 2011-06-04 11:40:40