Skip to content

SegmentedButton ​

Eine Reihe nebeneinander angeordneter Buttons, von denen genau einer aktiv ist. Geeignet für 2–5 sich ausschließende Optionen.

Designer-Attribute ​

AttributBeschreibungDefault
controlIdEindeutige IDautomatisch generiert
widthBreite (CSS-Wert)–
selectedKeykey des aktuell selektierten Items–
visibleSichtbartrue
enabledKomponente aktivtrue
spanS / spanM / spanL / spanXLGrid-Layout12

SegmentedButtonItem ​

AttributBeschreibungDefault
controlIdEindeutige ID der Komponenteautomatisch generiert
widthBreite (CSS-Wert)–
keyEindeutiger Schlüssel (für Auswahl)–
textAnzeigetext–
iconOptional: SAP-Icon-URL–
visibleKomponente sichtbartrue
enabledKlickbartrue

Events des SegmentedButtonItem:

EventAuslöser
onPressKlick / Tap

ABAP-API ​

Zugriff über me->get_segmented_button( '<controlId>' ).

MethodeZweck
GET_SELECTED_KEY / SET_SELECTED_KEYSelektierter Key
GET_ITEMSTabelle aller Items
GET_ITEMItem nach key
ADD_ITEMNeues Item anhängen
GET_ENABLED / SET_ENABLEDAktiv/Anklickbar
GET_SELECTED_ITEMAusgewählter Eintrag
GET_WIDTH / SET_WIDTHBreite
REMOVE_ITEMEintrag entfernen
REMOVE_ITEMSAlle Einträge entfernen
INITSetzt selectedKey auf leer

Item-Konstruktor: /mobbuild/cl_seg_button_item=>create( ).

SegmentedButtonItem-MethodeZweck
SET_KEY / GET_KEYSchlüssel
SET_TEXT / GET_TEXTAnzeigetext
SET_ICON / GET_ICONIcon-URL setzen / lesen
SET_ON_PRESSEreignis-Schlüssel für onPress

Geerbte Methoden: siehe Control.

Beispiel: /mobbuild/cl_ex_seg_button ​

Das Beispiel liest Event-Key und Sender und ergänzt im PBO einen zweiten SegmentedButton dynamisch mit drei Items:

abap
METHOD on_pai.

  DATA(lo_event)     = me->get_event( ).
  DATA(lv_event_key) = lo_event->get_event_key( ).
  DATA(lv_sender)    = lo_event->get_sender( ).

  DATA(lo_button)      = me->get_segmented_button( 'btnSegmented1' ).
  DATA(lo_button_items) = lo_button->get_items( ).
  DATA(lo_button_item)  = lo_button->get_item( 'one' ).

  me->set_message_toast(
    me->create_message_toast( |Press: { lv_event_key } | ) ).

ENDMETHOD.
abap
METHOD on_pbo.

  " Dynamische Items für btnDynamic
  DATA(lo_segmented_item_add) = /mobbuild/cl_seg_button_item=>create( ).
  lo_segmented_item_add->set_icon( 'sap-icon://add' ).
  lo_segmented_item_add->set_text( 'add' ).
  lo_segmented_item_add->set_key( 'add' ).
  lo_segmented_item_add->set_on_press( 'add' ).

  DATA(lo_segmented_item_accept) = /mobbuild/cl_seg_button_item=>create( ).
  lo_segmented_item_accept->set_icon( 'sap-icon://create' ).
  lo_segmented_item_accept->set_text( 'accept' ).
  lo_segmented_item_accept->set_key( 'accept' ).
  lo_segmented_item_accept->set_on_press( 'accept' ).

  DATA(lo_segmented_item_delete) = /mobbuild/cl_seg_button_item=>create( ).
  lo_segmented_item_delete->set_icon( 'sap-icon://delete' ).
  lo_segmented_item_delete->set_text( 'delete' ).
  lo_segmented_item_delete->set_key( 'delete' ).
  lo_segmented_item_delete->set_on_press( 'delete' ).

  DATA(lo_segemeted_button) = me->get_segmented_button( 'btnDynamic' ).
  lo_segemeted_button->add_item( lo_segmented_item_add ).
  lo_segemeted_button->add_item( lo_segmented_item_accept ).
  lo_segemeted_button->add_item( lo_segmented_item_delete ).

  lo_segemeted_button->set_selected_key( 'accept' ).

ENDMETHOD.

Events im Designer ​

EventAuslöser
onSelectionChangeAuswahl gewechselt

Nächste Schritte ​

  • RadioGroup – Alternative mit klassischem Radio-Button-Look
  • Button – einzelne Aktion ohne Auswahl-Charakter