die eigenschaft "dialogfragment setcancelable" funktioniert nicht
<p>ich arbeite in einer android) -anwendung und verwende ein dialogfragment, um ein dialogfeld anzuzeigen. ich möchte, dass dieses dialogfragment nicht abgebrochen werden kann. ich habe die eigenschaft "dialog cancelable" auf "false" gesetzt, aber sie hat weiterhin keine auswirkungen .</p><p>bitte schauen sie in meinen code und schlagen sie mir eine lösung vor.</p><pre><code>public class dialogtest extends dialogfragment { @override public dialog oncreatedialog(bundle savedinstancestate) { return super.oncreatedialog(savedinstancestate); } @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { view view = inflater.inflate(r.layout.dialog\_test, container, true); getdialog().requestwindowfeature(style\_no\_title); getdialog().setcancelable(false); return view; } } </code></pre>
<pre><code>@override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { view view = inflater.inflate(r.layout.dialog\_test, container, true); getdialog().requestwindowfeature(style\_no\_title); getdialog().setcancelable(false); return view; } </code></pre><p>anstelle von <code>getdialog().setcancelable(false);</code> musst du direkt <code>setcancelable(false);</code> verwenden</p><p>die aktualisierte antwort wird also so aussehen</p><pre><code>@override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { view view = inflater.inflate(r.layout.dialog\_test, container, true); getdialog().requestwindowfeature(style\_no\_title); setcancelable(false); return view; } </code></pre>
@dienicolehast du mal die playbar komplett zurückgesetzt?https://support.sonos.com/s/article/1096?language=defalls das auch nicht hilft, am besten mit dem support per chat oder telefon kontakt aufnehmen gruß,ralf Der Grund für das Problem war ein Fehler in der Effort-Datenbank. Wenn die berechnete Spalte auf nicht nullwertfähigen Spalten basiert, kann die berechnete Spalte auch automatisch nicht nullwertfähig werden. Daher erwartete die Effort-Datenbank einen Wert ungleich Null. Mit dem neuesten Update ist das Problem behoben. Sie müssen das globale `EntityFrameworkEffortManager.UseDefaultForNotNullable` Flag auf true setzen. 

 Siehe die [Ausgabe auf Github](https://github.com/zzzprojects/EntityFramework-Effort/issues/62#issuecomment-471199839) Im Druckerdialog (Systemeinstellungen -> Drucken und Faxen) gibt es eine Einstellung rechts unten bzgl. Standarddrucker (s. Bild).


Manchmal bringen die Druckertreiber eigene Dialoge mit. Deshalb mal in die Standardeinstellungen im Systemdialog nachsehen. <h2>moderne html5-techniken zum ändern von klassen</h2><p>moderne browser haben <a href="https://developer.mozilla.org/en-us/docs/dom/element.classlist"><strong>classlist</strong></a> hinzugefügt, das methoden zur verfügung stellt, mit denen klassen leichter ohne bibliotheken bearbeitet werden können:</p><pre><code>document.getelementbyid("myelement").classlist.add('myclass'); document.getelementbyid("myelement").classlist.remove('myclass'); if ( document.getelementbyid("myelement").classlist.contains('myclass') ) document.getelementbyid("myelement").classlist.toggle('myclass'); </code></pre><p>leider funktionieren diese in internet explorer vor version 10 nicht, obwohl es ein <a href="http://en.wikipedia.org/wiki/shim\_(computing)">shim</a> gibt, um die unterstützung für ie8 und ie9 hinzuzufügen, die unter <a href="https://developer.mozilla.org/en-us/docs/dom/element.classlist">diese seite</a> verfügbar ist. es wird jedoch immer mehr <a href="http://caniuse.com/#feat=classlist">unterstützt</a> .</p><h2>einfache browserübergreifende lösung</h2><p>die standard-javascript-methode zur auswahl eines elements ist <a href="https://developer.mozilla.org/en-us/docs/dom/document.getelementbyid"><code>document.getelementbyid("id")</code></a> . dies wird in den folgenden beispielen verwendet. sie können elemente natürlich auch auf andere weise erhalten. in der richtigen situation können sie stattdessen einfach <code>this</code> verwenden ins detail geht dies nicht in den rahmen der antwort.</p><h3>so ändern sie alle klassen für ein element:</h3><p>um alle vorhandenen klassen durch eine oder mehrere neue klassen zu ersetzen, legen sie das classname-attribut fest:</p><pre><code>document.getelementbyid("myelement").classname = "myclass"; </code></pre><p>(sie können eine durch leerzeichen getrennte liste verwenden, um mehrere klassen anzuwenden.)</p><h3>so fügen sie einem element eine zusätzliche klasse hinzu:</h3><p>um einem element eine klasse hinzuzufügen, ohne vorhandene werte zu entfernen/zu beeinflussen, fügen sie ein leerzeichen und den neuen klassennamen wie folgt hinzu:</p><pre><code>document.getelementbyid("myelement").classname += " myclass"; </code></pre><h3>so entfernen sie eine klasse aus einem element:</h3><p>um eine einzelne klasse zu einem element zu entfernen, ohne andere potenzielle klassen zu beeinflussen, ist ein einfacher regex-ersetzen erforderlich:</p><pre><code>document.getelementbyid("myelement").classname = document.getelementbyid("myelement").classname.replace ( /(?:^|\s)myclass(?!\s)/g , '' ) /* code wrapped for readability - above is all one statement */ </code></pre><p>eine erklärung dieser regex lautet wie folgt:</p><pre><code>(?:^|\s) # match the start of the string, or any single whitespace character myclass # the literal text for the classname to remove (?!\s) # negative lookahead to verify the above is the whole classname # ensures there is no non-space character following # (i.e. must be end of string or a space) </code></pre><p>das flag <code>g</code> weist das ersetzen an, nach bedarf zu wiederholen, falls der klassenname mehrmals hinzugefügt wurde.</p><h3>so prüfen sie, ob eine klasse bereits auf ein element angewendet wurde:</h3><p>der gleiche reguläre ausdruck, der oben zum entfernen einer klasse verwendet wurde, kann auch zur überprüfung verwendet werden, ob eine bestimmte klasse vorhanden ist:</p><pre><code>if ( document.getelementbyid("myelement").classname.match(/(?:^|\s)myclass(?!\s)/) ) </code></pre><p><br/></p><h3>zuweisen dieser aktionen zu onclick-ereignissen:</h3><p>es ist zwar möglich, javascript direkt in die html-ereignisattribute (z. b. <code>onclick="this.classname+=' myclass'"</code>) zu schreiben, dies wird jedoch nicht empfohlen. insbesondere bei größeren anwendungen wird durch die trennung von html-markup von javascript-interaktionslogik ein wartungsfähigerer code erzielt.</p><p>der erste schritt dazu ist das erstellen einer funktion und das aufrufen der funktion im onclick-attribut. beispiel:</p><pre><code>&lt;script type="text/javascript"&gt; function changeclass(){ // code examples from above } &lt;/script&gt; ... &lt;button onclick="changeclass()"&gt;my button&lt;/button&gt; </code></pre><p><sub><em>(es ist nicht erforderlich, dass dieser code in skript-tags enthalten ist. dies ist lediglich der kürze halber als beispiel gedacht. das einschließen von javascript in eine andere datei ist möglicherweise geeigneter.)</em></sub></p><p>der zweite schritt besteht darin, das onclick-ereignis aus dem html-code in javascript zu verschieben, beispielsweise mit <a href="https://developer.mozilla.org/en-us/docs/dom/element.addeventlistener">addeventlistener</a> </p><pre><code>&lt;script type="text/javascript"&gt; function changeclass(){ // code examples from above } window.onload = function(){ document.getelementbyid("myelement").addeventlistener( 'click', changeclass); } &lt;/script&gt; ... &lt;button id="myelement"&gt;my button&lt;/button&gt; </code></pre><p>(beachten sie, dass der window.onload-teil erforderlich ist, damit der inhalt dieser funktion <em>ausgeführt wird, nachdem der html-code</em> vollständig geladen wurde. andernfalls ist das myelement möglicherweise nicht vorhanden, wenn der javascript-code aufgerufen wird, sodass die zeile fehlschlägt .)</p><p><br/></p><h2>javascript frameworks und bibliotheken</h2><p>der obige code ist alles in standard-javascript enthalten. es ist jedoch üblich, entweder ein framework oder eine bibliothek zu verwenden, um allgemeine aufgaben zu vereinfachen und von behobenen fehlern und edge-fällen zu profitieren, an die sie beim schreiben des codes nicht denken.</p><p>während einige leute es für übertrieben halten, ein ~ 50 kb-framework für das einfache ändern einer klasse hinzuzufügen, ist die überlegung, wenn sie umfangreiche javascript-arbeiten ausführen oder etwas, das ungewöhnliches cross-browser-verhalten hat, eine überlegung wert.</p><p><em>(in groben zügen handelt es sich bei einer bibliothek um eine reihe von werkzeugen, die für eine bestimmte aufgabe entwickelt wurden, während ein framework im allgemeinen mehrere bibliotheken enthält und eine reihe von aufgaben ausführt.)</em></p><p>die obigen beispiele wurden im folgenden mit <a href="http://jquery.com">jquery</a> wiedergegeben, wahrscheinlich der am häufigsten verwendeten javascript-bibliothek (obwohl es auch andere gibt, die es zu untersuchen gilt).</p><p>(beachten sie, dass <code>$</code> hier das jquery-objekt ist.)</p><h3>klassen mit jquery ändern:</h3><pre><code>$('#myelement').addclass('myclass'); $('#myelement').removeclass('myclass'); if ( $('#myelement').hasclass('myclass') ) </code></pre><p>darüber hinaus bietet jquery eine verknüpfung zum hinzufügen einer klasse, wenn sie nicht angewendet wird, oder zum entfernen einer klasse, die folgendes ausführt:</p><pre><code>$('#myelement').toggleclass('myclass'); </code></pre><p><br/></p><h3>zuweisen einer funktion zu einem klickereignis mit jquery:</h3><pre><code>$('#myelement').click(changeclass); </code></pre><p>oder, ohne eine id zu benötigen:</p><pre><code>$(':button:contains(my button)').click(changeclass); </code></pre><p><br/></p> <p>versuche etwas wie</p><pre><code>&lt;ifmodule mod\_expires.c&gt; expiresactive on expiresdefault "access plus 1 seconds" expiresbytype text/html "access plus 1 seconds" expiresbytype image/x-icon "access plus 2592000 seconds" expiresbytype image/gif "access plus 2592000 seconds" expiresbytype image/jpeg "access plus 2592000 seconds" expiresbytype image/png "access plus 2592000 seconds" expiresbytype text/css "access plus 604800 seconds" expiresbytype text/javascript "access plus 86400 seconds" expiresbytype application/x-javascript "access plus 86400 seconds" &lt;/ifmodule&gt; </code></pre><p>oder </p><pre><code>&lt;filesmatch "\.(?i:gif|jpe?g|png|ico|css|js|swf)$"&gt; &lt;ifmodule mod\_headers.c&gt; header set cache-control "max-age=172800, public, must-revalidate" &lt;/ifmodule&gt; &lt;/filesmatch&gt; </code></pre> Hallo Claudia ******,  

  

wir bedauern sehr, dass Sie mit **[Sofatutor](/sofatutor/1633)** unzufrieden sind. Wie uns unser Kundenservice mitgeteilt hat, haben wir bereits eine gemeinsame Lösung gefunden, was uns sehr freut.  

  

Um möglichen Fragen von Ihnen oder anderen Kunden zu begegnen, fassen wir hier noch einmal die wichtigsten Informationen zusammen:  

  

Uns ist wichtig, dass **[Sofatutor](/sofatutor/1633)** nicht irrtümlich gebucht wird, deswegen sind wir in unserer Kommunikation offen und transparent. Schon im Bestellvorgang wird an vielen Stellen darauf hingewiesen, dass der Test in ein kostenpflichtiges Abo überläuft. Der Erwerb von **[Sofatutor](/sofatutor/1633)** wird bestätigt durch den Button “Jetzt kaufen”.   

  

Drei Tage bevor die kostenlose Testphase in eine kostenpflichtige Mitgliedschaft übergeht, erhält jeder Kunde eine Erinnerung per E-Mail an die vom Kunden hinterlegte Rechnungs-E-Mail-Adresse.   

  

Die kostenlose Testphase kann bis zum letzten Moment im **[Sofatutor](/sofatutor/1633)** Kundenkonto online gekündigt werden. Dieser Prozess ist mehrschrittig, weshalb der Text “Zur Kündigung” auf der Schaltfläche steht. Der Prozess muss mehrschrittig sein, weil wir bspw. Kunden darüber informieren wollen, dass mit der online Kündigung, der Zugang sofort erlischt. Innerhalb von drei Mausklicks ist die kostenlose Testphase gekündigt und es geht eine Bestätigung per Mail zu und im Kundenkonto ist ein entsprechender Hinweis prominent sichtbar. Das gleiche gilt für die Kündigung per Fax, Brief und E-Mail. Wie bei vielen anderen Dienstleistungen mit Laufzeitverträgen auch, wird eine Kündigung erst mit der Kündigungsbestätigung wirksam.   

  

Wir wünschen Ihnen weiterhin alles Gute.  

  

Viele Grüße  

Ihr **[Sofatutor](/sofatutor/1633)**-Team Hi [wolldiskont](https://community.shopify.com/c/user/viewprofilepage/user-id/766158),


Kai hier von Shopify. Danke für deinen Post.


Ich helfe dir gerne dabei deine ausverkauften Varianten in deinem Shopify Shop automatisch auszublenden.


Weißt du, welches Theme du verwendest? Wenn du eins unserer [kostenlosen Shopify Themes](https://themes.shopify.com/themes?sort_by=most_recent&price%5B%5D=free) verwendest, kannst du eine kleine Codeänderung an deinem Theme vornehmen, die in [dieser Anleitung](https://translate.google.com/translate?sl=auto&tl=de&u=https%3A%2F%2Fshopify.dev%2Ftutorials%2Fcustomize-theme-hide-variants-that-are-sold-out) beschrieben wird, um die ausverkauften Varianten auszublenden. Bevor du Code-Änderungen an deinem Shop vornimmst, also auch Apps installierst ist es immer ratsam vorher [das eigene Theme zu duplizieren](https://bit.ly/2zLhVUo), damit du problemlos zu einer funktionierenden Version deines Shops zurückkehren kannst, falls etwas schiefgehen sollte.


Wer dein Theme entwickelt hat und unterstützt [siehst du so nach](https://screenshot.click/20-11-izpjv-3ak6i.mp4). Alternativ kannst du bei einem Shopify Theme auch unsere Themedesigner fragen diese Anpassung im Rahmen der [Designtime](https://help.shopify.com/de/manual/online-store/os/using-themes/theme-support) für dich vorzunehmen. 


Falls du keins unserer Themes verwendest, kannst du entweder beim Entwickler deines Themes nachfragen diese Anpassung vorzunehmen oder du stellst einen [Shopify Experten](http://bit.ly/2B8rcXk) ein, um diese Anpassung vorzunehmen. 


Bitte gib Bescheid, ob das klappt oder wenn du noch irgendwelche anderen Fragen haben solltest.


Mit freundlichen Grüßen!


Kai **problem gelöst:**  

  

auch bei meinem a50 gab es das problem mit dem fingerabdrucksensor.  

  

schon beim erfassen des fingerabdrucks brauchte ich zahllose versuche, bis der scannvorgang endlich erfolgreich war. anschließend wurde der fingerabdruck so gut wie nie erkannt.  

  

und als ich dann noch eine bildschirmschutzfolie aufgebracht habe, funktionierte der fingerabdrucksensor überhaupt nicht mehr (auch nach erneuten mühseligem erfassen des fingerabdrucks)  

  

**folgender trick und weitere maßnahmen brachten die lösung:**  

  

samsung galaxy s10, s20, a50 & co.:  

genialer trick verbessert fingerabdrucksensor im display  

[samsung galaxy s10, s20, a50 & co.: genialer trick verbessert fingerabdrucksensor im display](https://www.giga.de/news/samsung-galaxy-s10-s20-a50-co.-genialer-trick-verbessert-fingerabdrucksensor-im-display/)  

  

falls der link nicht funktioniert...  

so müsst ihr vorgehen:  

  

1. einstellungen  

2. apps  

3. drei punkte in der rechten oberen ecke auswählen  

4. systemanwendungen anzeigen  

5. nach dem eintrag „com.samsung.android.biometrics.app.settings“ suchen und auswählen  

6. akku  

7. akkuverbrauch optimieren  

8. oben im dropdown-menü „apps nicht optimiert“ in „alle“ ändern  

9. wieder nach dem eintrag „com.samsung.android.biometrics.app.settings“ suchen  

10. schieberegler deaktivieren  

11. smartphone neu starten  

  

**zusätzlich habe ich noch folgendes gemacht:**  

  

1. einstellungen  

2. anzeige  

3. adaptive helligkeit: schieberegler deaktiviert  

4. berührungsempfinglichkeit: schieberegler aktiviert  

  

  

die umgebungshelligkeit (sonnenschein, innenraum) hat ebenfalls einfluss auf die erkennungsquote, je heller desto schlechter. es hat bei mir dabei geholfen meinen daumen zweimal zu erfassen, einmal im innenraum und zusätzlich draußen bei sonnenschein.  

  

**resultat:**  

der fingerabdrucksensor funktioniert ohne bildschirmschutzfolie bei mir nun so gut wie immer.  

sogar mit schutzfolie geht es nun. dabei kann es gelegentlich vorkommen, dass ich 2-3 versuche benötige.  

  

funktioniert auch nach der aktualisierung auf android 10. die einzelzelle (solitary confinement) hat mehrere statische fähigkeiten, die dafür sorgen, dass du dein ziehsegment übergehst, verhüllt bist und jeder schaden auf dich verhindert wird. alle diese fähigkeiten gelten dauerhaft, solange die einzelzelle (solitary confinement) unter deiner kontrolle im spiel ist. bei der ersten fähigkeit handelt es sich nicht um eine aktivierte fähigkeit, sondern um eine ausgelöste fähigkeit. diese fähigkeit wird zu beginn deines versorgungssegments ausgelöst und lässt dich eine karte abwerfen, damit die einzelzelle (solitary confinement) im spiel bleibt. wenn du keine karte abwerfen kannst oder willst, musst du die einzelzelle (solitary confinement) opfern, und damit gelten auch ihre statischen fähigkeiten nicht mehr. empfohlene lektüre: "kapitel 2: zaubersprüche, fähigkeiten und effekte" im regelbuch. es geht hier wie [@tk1](/u/tk1) schon richtig gezeigt hat ausschließlich um den ”homee welt" tab und damit die darstellung von deals und stories in genau diesem tab. es gibt hier keinerlei einfluss auf irgendwelche anderen teile der app.