Прежде всего, расширяется ли ваш класс StatefulWidget
?
В onPressed вашей кнопки вы можете сделать что-то вроде этого примера. AlertDialog может возвращать значение при открытии. Я просто взял пример Alertdialog и вернул String.
Затем вы можете установить свое состояние с новым значением.
onPressed: () async {
var newValue = await showDialog(
context: context,
builder: (c) => AlertDialog(
title: Text('AlertDialog Title'),
content: SingleChildScrollView(
child: ListBody(
children: <Widget>[
Text('This is a demo alert dialog.'),
Text(
'Would you like to approve of this message?'),
],
),
),
actions: <Widget>[
FlatButton(
child: Text('Approve'),
onPressed: () {
Navigator.of(context).pop("YOUR_NEW_VALUE");
},
),
],
));
//newValue now has the value "YOUR_NEW_VALUE"
setState((){
selectedType = newValue;
enableBrand = true;
});
}