gpt4 book ai didi

java - mAdapter.notifyDataSetChanged() 在某些情况下不起作用

转载 作者:行者123 更新时间:2023-12-02 05:46:46 25 4
gpt4 key购买 nike

我正在尝试使用 adapter.notifyDataSetChanged() 更新我的 RecyclerView。虽然当我使用按钮更新列表并反射(reflect)在 View 中时它可以工作,但是当我从名为 messageArrived() 的 mqttcall 函数 的其他函数调用它时它不起作用.

我尝试重新初始化整个列表和适配器,但从 messageArrived() 函数调用时仍然不起作用,而当我通过按钮单击执行此操作时,它仍然不起作用。

fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
somefun();

}
});

public void somefun(){
Pump pump = new Pump("71xxxxxx", "East Motor", "OFF",R.drawable.motor);

pumpList.add(pump);
mAdapter.notifyDataSetChanged();
}

public void messageArrived(String topic, MqttMessage message) throws Exception {
Log.d("In main Activity","Message arrived");
String s = message.toString();
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, CHANNEL_ID)
.setSmallIcon(R.drawable.common_google_signin_btn_icon_dark)
.setContentTitle(topic)
.setContentText(s)
.setPriority(NotificationCompat.PRIORITY_DEFAULT);
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
notificationManager.notify(1, builder.build());


somefun();
}

messageArrived() 在收到消息时确实会执行,因为我收到了通知。

最佳答案

尝试在适配器中添加方法

public fun setDatass(datasList: List<Datas>){
this.datasList= datasList
notifyDataSetChanged()
}

并在activityfragment中调用它

    public void somefun(){
Pump pump = new Pump("71xxxxxx", "East Motor", "OFF",R.drawable.motor);

pumpList.add(pump);
mAdapter.setDatas(pumpList);
}

关于java - mAdapter.notifyDataSetChanged() 在某些情况下不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56087320/

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