使用DropdownButton值

问题描述

我在Flutter应用程序中构建了一个漂亮的DropdownButton,但是很难找到如何实际使用它的地方。

如何提取所选值?

我想用它来更新搜索栏的设置。当用户选择“ 1”时,搜索栏应在我的sqlite数据库搜索特定列,当用户选择“ 2”时,应搜索其他列。提取值后,最好将我的if / else语句放在搜索栏上方或代码的告诉如何搜索数据库的部分中?

解决方法

尝试一下:

search_page.dart

class SearchingPage extends StatelessWidget {
  
  @override
  Widget build(BuildContext context) {
    return MyBeautifulDropdownPage(
      myIfElseFunction: (value) {
        print('selected value is $value');
        if(value =='1'){
          _searchASpecificColumnInMySqliteDb();
        }else if (value == '2'){
          _searchTheOtherColumnInMySqliteDb();
        }
      },);
  }
}

my_beautiful_dropdown.dart

class MyBeautifulDropdownPage extends StatelessWidget {
  final Function(String) myIfElseFunction;

  const MyBeautifulDropdownPage({Key key,this.myIfElseFunction}) : super(key: key); 
  @override
  Widget build(BuildContext context) {
    return new DropdownButton<String>(
      items: <String>['1','2'].map((String value) {
        return new DropdownMenuItem<String>(
          value: value,child: new Text(value),);
      }).toList(),onChanged: myIfElseFunction
    ),}
}

在下拉菜单中,您可以使用onChanged属性获取所选列的值。您可以在其中放置if语句

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...