2017-12-05 33 views
0

Ich versuche, einen einfachen Zwei-Tasten-Alarmdialog zu erstellen, ohne auf eine separate Klasse zurückgreifen zu müssen. Die AlertDialog.Builder-Klasse, die ich zum Erstellen des Dialogfelds verwende, verfügt über drei Methoden zum Hinzufügen von Schaltflächen zum Dialogfeld.Warum beschränkt AlertDialog.Builder die Schaltflächen/wie funktioniert es?

setPositiveButton(...) 
setNegativeButton(...) 
setNeutralButton(...) 

Warum programmiert der Dialog diesen 3-Tasten-Grenzwert fest? Warum müssen Tasten auch als positiv, negativ oder neutral eingestellt werden? Welchen Effekt hat ein negativer Tastendruck im Vergleich zu einem positiven oder neutralen Tastendruck?

Ich vermisse eindeutig etwas Wichtiges, aber es scheint, als ob dies eine schlechte Möglichkeit ist, mit Schaltflächen umzugehen? Denn was, wenn ich zwei (oder mehr Knöpfe) möchte, die eigentlich nicht als positiv oder negativ angesehen werden sollten? Der Dialog erlaubt nicht das Hinzufügen von mehr als einer neutralen Schaltfläche.

+0

Sie ein Custom mit jedem Layout festlegen können Sie, wenn Ihre Bedürfnisse wollen durch nicht erfüllt positiv/negativ/neutral – elmorabea

Antwort

0

Positiv, neutral oder negativ sind die Optionen für einen Standardalarmdialog. Wenn Sie dem Namen der Schaltfläche folgen, um eine positive oder negative Aktion zu verarbeiten, legt der Builder das Layout gemäß den Designrichtlinien fest. Wenn sie sich mit neuen Android-Versionen ändern, folgen Ihre Optionen immer der vorgeschlagenen Reihenfolge.

Natürlich können Sie Ihren OnClickListener in der von Ihnen gewünschten Reihenfolge einstellen.

Und wenn Sie mehr als 3 Tasten Sie Ihre benutzerdefinierte Ansicht nach so etwas wie dieses aufblasen können:

LayoutInflater inflater = getActivity().getLayoutInflater(); 
View dialogView = inflater.inflate(R.layout.alert_dialog_custom_layout, null); 
dialogBuilder.setView(dialogView); 
0

Es gibt eine Grenze von drei Tasten in erster Linie aufgrund der begrenzten Breite eines Bildschirms des Telefons im Portrait-Modus. Stellen Sie sich vor, dass alle Tasten in einer Reihe angeordnet sind, wie es für eine AlertDialog typisch ist. Wenn Sie über drei Tasten hinausgehen und die Breite nicht mehr ausreicht, wird der Text abgeschnitten und der Benutzer hat das Risiko, versehentlich die falsche Taste zu drücken. Wenn Sie mehr als 3 Schaltflächen benötigen, benötigen Sie entweder ein benutzerdefiniertes Dialogfeld mit mehr Schaltflächen oder um zu überdenken, wie genau Sie mit den Eingaben des Benutzers umgehen möchten, und dabei die Einschränkungen der möglichen Bildschirmgröße des Benutzers zu berücksichtigen.

Der Grund für die drei eingeschränkten Optionen Positiv, Neutral und Negativ ist ebenfalls die UX-Konsistenz im gesamten Betriebssystem. Betrachten Sie eine Warnmeldung von Android 1.5:

Android 1.5 dialog

mit der Android 4.0 und 5.0:

Android 4.0 dialogs enter image description here

Beachten Sie, wie die Reihenfolge der Positiv- und Negativ-Tasten vertauscht sind. Dies war eine absichtliche Design-Entscheidung, die mit der "Holo" -UI in Android 3.0 eingeführt wurde. Durch Zuweisen einer "Positiv" - und "Negativ" -Schaltfläche können die Positionen dieser Schaltflächen entsprechend der UX der Betriebssystemversion des Benutzers geändert werden, ohne dass Codeänderungen in der App erforderlich sind.

Weiterführende Literatur:

Verwandte Themen