Switching a radio button back to last value

1 view (last 30 days)
Hi,
I'd like my radiobutton to switch back to the last used value if the user of the gui answers 'no' to the dialogbox.
Here is the button/function (I have three buttons/cases in the actual code)
%buttons
FileTypeBG = uibuttongroup(ParametersFig, 'Visible','on',...
'Title','Fit Type',...
'Parent',ParametersFig,'units','normalized','outerposition',[.22 .33 .10 .12],...
'BackgroundColor',.8*[1 1 1],...
'SelectionChangedFcn',@FileType);
Filenames_B = uicontrol(FileTypeBG,'Style',...
'radiobutton',...
'String','Filenames',...
'Position',[10 3 100 30],...
'BackgroundColor',.8*[1 1 1],...
'HandleVisibility','on');
end
function FileType(src, event)
switch src.String
case 'Filenames'
FileMethod.Tag = Filenames
choice = questdlg('Are you sure?',...
'Switching to Process Data via Filenames Confirmation',...
'Yes','No','No');
switch choice
case 'Yes'
Update1
otherwise
???????????????
end
end
end

Accepted Answer

Walter Roberson
Walter Roberson on 12 Sep 2017
oldv = event.OldValue;
if ~isempty(oldv)
oldv.Value = 1; %activate previous button
else
event.NewValue.Value = 0; %no previous button, just deactivate current one
end
  1 Comment
Sam Gottheim
Sam Gottheim on 13 Sep 2017
I like this answer and it is probably more general and safe, but since my buttongroup always starts with one of the values selected, just using this seems to work
oldv = event.OldValue;
oldv.Value = 1;

Sign in to comment.

More Answers (1)

Rik
Rik on 12 Sep 2017
Just save the previous state to the guidata struct. You can easily load it like this:
hObject=get(scr,'Parent');
handles=guidata(hObject);

Categories

Find more on Interactive Control and Callbacks in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!