Hi @Sang19970619 ,
Here is a code snippet I posted for another question here :
static void event_handler(lv_event_t * e) {
lv_event_code_t code = lv_event_get_code(e);
lv_obj_t * obj = lv_event_get_target(e);
if(code == LV_EVENT_PRESSED) {
uint32_t id = lv_btnmatrix_get_selected_btn(obj);
if( lv_btnmatrix_has_btn_ctrl( obj, id, LV_BTNMATRIX_CTRL_CHECKED ) ) {
lv_btnmatrix_clear_btn_ctrl(obj, id, LV_BTNMATRIX_CTRL_CHECKED);
} else {
lv_btnmatrix_clear_btn_ctrl_all(obj, LV_BTNMATRIX_CTRL_CHECKED);
lv_btnmatrix_set_btn_ctrl(obj, id, LV_BTNMATRIX_CTRL_CHECKED);
}
}
}
static const char * btnm_map[] = {"1", "2", "3", "4", "5", "" };
void button_demo(void) {
lv_obj_t * btnm1 = lv_btnmatrix_create(lv_scr_act());
lv_btnmatrix_set_map(btnm1, btnm_map);
lv_obj_align(btnm1, LV_ALIGN_CENTER, 0, 0);
lv_obj_add_event_cb(btnm1, event_handler, LV_EVENT_PRESSED, NULL);
}
I think this can be adapted to your requirements.
I hope that helps.
Kind Regards,
Pete