2017-04-11 10 views
-3

Es gibt eine App, in der BLE-Geräte gescannt werden und der MAC- und RSSI-Wert des Geräts zusammen mit einer Schaltfläche angezeigt wird, um eine Verbindung mit diesem Gerät herzustellen.Klicken Sie auf die Schaltfläche nicht beim Aufruf von notifyDataSetChanged

Der RSSI-Wert stammt von den Scan-Ergebnissen des BLE-Scans und wird in ListView aktualisiert. Die Frequenz, mit der Geräte gescannt werden, ist zu hoch und daher ändert sich der RSSI-Wert häufig. Bei jedem Scan wird ein Callback aufgerufen, der den Wert von RSSI in listrong Text aktualisiert und notifyDataSetChanged() aufruft.

Bedeutet bei jedem Scan-Ergebnis, dass notifyDataSetChanged() aufgerufen wird, um RSSI-Werte auf der Benutzeroberfläche zu aktualisieren. Wenn ich aber notifyDataSetChanged() zu häufig aufrufe, vermeide ich es, auf die Schaltfläche zu klicken. Ich klicke auf die Schaltfläche, aber es ist nicht wirklich klicken (mein Klick ist irgendwo verloren) während Callback ist immer wieder aktualisieren Adapter. Hier

ist die ähnliche Art von Situation, die ich denke, aber Lösung ist nicht bekannt

Click HERE

Antwort

0

Wenn Sie nur hinzufügen/ändern/entfernen, um ein Element auf einer Listenansicht können Sie versuchen, eine dieser spezifischere Funktionen :

notifyItemChanged(int) 
notifyItemInserted(int) 
notifyItemRemoved(int) 
notifyItemRangeChanged(int, int) 
notifyItemRangeInserted(int, int) 
notifyItemRangeRemoved(int, int) 

dies Für weitere Informationen überprüfen: https://stackoverflow.com/a/33792079/6632568

+0

Jedes Element in der Liste wird aktualisiert –

Verwandte Themen