Hallo Mike,
Vielen Dank für eine so großartige Bibliothek. Ich habe ein Problem, wenn ich versuche, den Namen eines Elements in einer Schublade zu aktualisieren. Das verwende ich?
deviceAdd.updateName(Currentpos, new StringHolder("Name"));
Es scheint, dass dieser Code nicht funktioniert. Gibt es eine Lösung?
@parmarravi welche Version der Bibliothek?
Currentpos
ist eine Kennung? (der Name lässt etwas anderes vermuten)
Ihre Artikel müssen eine Kennung haben, und Sie können diese Kennung dann zum Aktualisieren verwenden. Wie das Javadoc bereits zeigt:
https://github.com/mikepenz/MaterialDrawer/blob/develop/library/src/main/java/com/mikepenz/materialdrawer/Drawer.java#L681
was wird die Kennung sein? Ich speichere die Position eines Elements in Currentpos.
deviceAdd.setOnDrawerItemLongClickListener(new Drawer.OnDrawerItemLongClickListener() {
<strong i="6">@Override</strong>
public boolean onItemLongClick(View view, int position, IDrawerItem drawerItem) {
String tx = ((Nameable)drawerItem).getName().toString();
String ipd= db.HomeLightDao().getDeviceFromName(tx).getDevip();
Currentpos = position;
System.out.println("LongPos:"+position);
AddNewNavigation_items addNewNavigation_items = new AddNewNavigation_items(getApplicationContext(),ipd);
addNewNavigation_items.show(getFragmentManager(),"edit name");
return false;
}
});
}
Wie in der README gezeigt, können Sie eine beliebige Kennung definieren: https://github.com/mikepenz/MaterialDrawer#add -items-and-adding-some-functionality
Wenn nicht, wird dem Artikel automatisch eine Kennung zugewiesen (nachdem er der Schublade hinzugefügt wurde)
Sie können die Kennung von drawerItem.getIdentifier()
Gibt es einen Code zum Aktualisieren des Layouts? Der Artikelname wird immer noch nicht aktualisiert.
Sie haben identifier
(nachdem der Artikel der Schublade hinzugefügt wurde) (können Sie überprüfen, ob der Bezeichner != 0) ist.
und dann haben Sie die Methode update
im UI-Thread aufgerufen?
Welche Version der Schublade verwendest du?
Kennung ist -12. Ich verwende die neueste Version der Schublade und die Aktualisierungsmethode für den UI-Thread.
Im Moment habe ich den vorherigen Code verwendet und die Kennung anstelle der Position übergeben.
Currentpos = drawerItem.getIdentifier();
Sie verwenden also 6.0.5
?
Ja
Ok lass mich mal genauer hinschauen. Ich lasse es dich wissen.
Ok, ich konnte hier eine Regression in der Benachrichtigung erkennen: https://github.com/mikepenz/FastAdapter/blob/develop/library-core/src/main/java/com/mikepenz/fastadapter/utils/DefaultItemListImpl.java #L94
Wird so schnell wie möglich ein Update erstellen und Sie informieren, wenn es fertig ist
Danke mike.
In FastAdapter behoben. wird den MaterialDrawer zu früh aktualisieren
Mit Hilfe dieses Mikes, (Nameables) drawItem) .getName().getText(MainActivity.this) kann ich jetzt eine Log- und Toast-Nachricht abrufen. Nur die Benutzeroberfläche wird nicht aktualisiert.
mach das nicht :D
Ich habe hier eine neue FastAdapter-Version veröffentlicht: https://github.com/mikepenz/FastAdapter/commit/1ecad22a1dccf6935832f187f783acec60efced0
und wird die Schublade bald aktualisieren. Maven Central braucht nur ein bisschen, um Releases zu synchronisieren
Neues Release fertig: https://github.com/mikepenz/MaterialDrawer/releases/tag/v6.0.6
Es dauert ~30 Minuten, bis Maven synchronisiert ist und Sie es verwenden können
Sein Working Mike danke für das Update .
Vielen Dank für diese Korrektur!
Hilfreichster Kommentar
Neues Release fertig: https://github.com/mikepenz/MaterialDrawer/releases/tag/v6.0.6
Es dauert ~30 Minuten, bis Maven synchronisiert ist und Sie es verwenden können