The radio UI component displays 1 or more options and allows users to select 1 of them. For more information, see the Radio API.

This feature is supported in mobile applications only.

Basic Usage

To use a radio component in your application:

  1. Add a radio button with the elm_radio_add() function:

    Evas_Object *radio;
    radio = elm_radio_add(parent);
  2. Set a text or an image, if necessary, according to the default style:

    • Set a label to the radio button with the elm_object_text_set() function, if the style supports a text part:

      elm_object_text_set(radio, "option 1");
    • Set an image object to the button with the elm_object_part_content_set() function and pass the part name as a parameter:

      Evas_Object *icon;
      elm_object_part_content_set(radio, "icon", icon);
  3. Group the radio buttons:

    • Assign a unique value to each radio button with the elm_radio_state_value_set() function:

      elm_radio_state_value_set(radio, 1);
    • Group the radio buttons with the elm_radio_group_add() function. You can set one of the radio buttons as selected with the elm_radio_value_set() function.

      elm_radio_group_add(radio, group);
    • Group the radio buttons visually by packing them into a box.

  4. Register the callback functions.

    The following example shows how to define and register a callback for the changed signal:

    evas_object_smart_callback_add(radio, "changed", changed_cb, data);
    changed_cb(void *data, Evas_Object *obj, void *event_info)
        dlog_print(DLOG_INFO, LOG_TAG, "The value has changed\n");

The following example shows a simple use case of the radio component.

Example: Radio use case


Evas_Object *win;
Evas_Object *conf;
Evas_Object *nf;
Evas_Object *box;
Evas_Object *radio;
Evas_Object *group;

/* Starting right after the basic EFL UI Layout code */
/* win - conformant - naviframe */

box = elm_box_add(nf);
elm_naviframe_item_push(nf, "Radio", NULL, NULL, box, NULL);

/* Radio 1 */
/* Add a radio */
radio = elm_radio_add(box);
/* Configure the radio */
elm_object_text_set(radio, "Radio 1");
elm_radio_state_value_set(radio, 1);
elm_box_pack_end(box, radio);

group = radio;

/* Radio 2 */
radio = elm_radio_add(box);
elm_object_text_set(radio, "Radio 2");
elm_radio_state_value_set(radio, 2);
elm_box_pack_end(box, radio);
/* Add to the group */
elm_radio_group_add(radio, group);

/* Radio 3 */
radio = elm_radio_add(box);
elm_object_text_set(radio, "Radio 3");
elm_radio_state_value_set(radio, 3);
elm_box_pack_end(box, radio);
elm_radio_group_add(radio, group);

/* Set 1 of the radio components as selected */
elm_radio_value_set(group, 1);


The following table lists the available component styles.

Table: Radio styles

Style Sample Text part Swallow part
default elm/radio/base/default elm.text icon


You can register callback functions connected to the following signals for a radio object.

Table: Radio callback signals

Callback Description event_info
changed The radio button is selected. NULL

The signal list in the API reference can be more extensive, but only the above signals are actually supported in Tizen.

Except as noted, this content is licensed under LGPLv2.1+.

  • Dependencies
    • Tizen 2.4 and Higher for Mobile