Java 如何从另一个视图通知android ListView?

Java 如何从另一个视图通知android ListView?,java,android,listview,Java,Android,Listview,我在更新ListView(LV)时遇到问题,每次尝试删除某个项目时,它都会提示我以下错误:适配器的内容已更改,但ListView未收到通知 但是我确实在LV上调用了notify(),这是我的代码: public void deleteNotif(Reminder reminder) { NotificationDBHelper db = new NotificationDBHelper(getBaseContext()); this.mNotificationsHours.rem

我在更新ListView(LV)时遇到问题,每次尝试删除某个项目时,它都会提示我以下错误:
适配器的内容已更改,但ListView未收到通知

但是我确实在LV上调用了
notify()
,这是我的代码:

public void deleteNotif(Reminder reminder)
{
    NotificationDBHelper db = new NotificationDBHelper(getBaseContext());
    this.mNotificationsHours.remove(reminder); // here I remove the element from the db
    db.delete(reminder); // here I remove the element from the list

    synchronized (this.mNotificationListLV)
    {
        Log.d("sync called","hi stackoverflow");
        this.mNotificationListLV.notify();
    }
}
当我不使用
synchronized()
时,它会提示错误:
对象在notify()之前未被线程锁定。
;所以我不知道该怎么办

我从LV中的一个项目调用
OnClickEventListener()
删除通知(提醒提醒):

public NotificationButton(Context context, AttributeSet attrs) {
    super(context, attrs);
    //getAttr(context, attrs);
    this.mImg.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v)
        {
            NotificationConfig nc = NotificationConfig.getInstance();
            nc.deleteNotif(mReminder);
        }
    });
    super.setImg(R.drawable.ic_delete_forever_black_24dp,0xc40003);
}

谢谢。

您正在
列表视图
上应用通知,而不是适配器

其中是来自
对象
类的函数,主要用于
等待通知
锁定机制,这里根本不需要该机制


解决方案:在适配器引用上应用

您在
列表视图
上应用notify,而不是适配器

其中是来自
对象
类的函数,主要用于
等待通知
锁定机制,这里根本不需要该机制


解决方案:在适配器引用上应用

您应该使用notifyDataStateChange()方法Hi并欢迎使用Stack Overflow,请花一点时间浏览一下以了解您在这里的做法(以及赢得您的第一个徽章),阅读如何创建和同时检查,以增加获得反馈和有用答案的机会。您应该使用notifyDataStateChange()方法Hi和Stack Overflow欢迎使用,请花点时间浏览以了解您在这方面的做法(以及赢得您的第一个徽章),阅读如何创建和检查,以增加获得反馈和有用答案的机会。谢谢!这很有效,但现在我想知道,为什么一开始就有通知?什么时候使用一个线程,什么时候使用另一个线程?我在回答中提到了这一点,你可以看看small并阅读java中线程的并发性,一个全新的世界正在探索中,祝你好运!这很有效,但现在我想知道,为什么一开始就有通知?什么时候使用一个线程,什么时候使用另一个线程?我在回答中提到了这一点,您可以查看small并阅读java与thread的并发性,有一个全新的世界需要探索,祝您好运