Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 带sqlite的下拉菜单-颤振_List_Sqlite_Dart_Flutter_Dropdown - Fatal编程技术网

List 带sqlite的下拉菜单-颤振

List 带sqlite的下拉菜单-颤振,list,sqlite,dart,flutter,dropdown,List,Sqlite,Dart,Flutter,Dropdown,我有数据库sqlite数据,我想在下拉列表中显示我的数据,并在表中更改行的id,因为将来我想创建另一个下拉列表,以更改为第一个下拉列表的值。任何人都可以帮助?在Flatter上使用sqlite 要从SQLite数据库收集数据,可以使用(如果是iOS或Android设备,则可以单独使用)。您必须将依赖项添加到pubspec.yaml dependencies: ... sqflite: any 当您想要使用sqflite时,必须导入库 import 'package:sqflite/sq

我有数据库sqlite数据,我想在下拉列表中显示我的数据,并在表中更改行的id,因为将来我想创建另一个下拉列表,以更改为第一个下拉列表的值。任何人都可以帮助?

在Flatter上使用sqlite 要从SQLite数据库收集数据,可以使用(如果是iOS或Android设备,则可以单独使用)。您必须将依赖项添加到
pubspec.yaml

dependencies:
  ...
  sqflite: any
当您想要使用sqflite时,必须导入库

import 'package:sqflite/sqflite.dart';
接下来,您必须打开到SQLite的连接,这里我们创建一个表,以防您没有一个表

Database database = await openDatabase(path, version: 1,
    onCreate: (Database db, int version) async {
  await db.execute(
      'CREATE TABLE Test (id INTEGER PRIMARY KEY, name TEXT, value INTEGER, num REAL)');
});
您可以使用
数据库.rawQuery
插入或检索数据

插入:

int primaryKeyInsertedRow = await database.rawQuery('INSERT INTO Test(name, value, num) VALUES("some name", 1234, 456.789)');
选择:

List<Map> list = await database.rawQuery('SELECT * FROM Test');
显示下拉菜单列表 要显示首先检索的数据,必须创建一个扩展
StatefulWidget
的类,重写
createState()
方法,并设置自己的状态(在本例中,
SettingWidgetState

其次,您应该为它定义一个状态,定义一个扩展
state
的类。在该类中,您应该有一个
DropdownMenuItem
列表和当前选定元素的字符串成员

为了方便起见,在本例中,我们将使用城市的静态列表:

List _cities = [
  "Cluj-Napoca",
  "Bucuresti",
  "Timisoara",
  "Brasov",
  "Constanta"
];
接下来,我们覆盖
initState()
DropDownMenuItem
列表设置为我们的列表和当前选择的列表元素。然后我们应该调用
super.initState()

此外,我们需要重写
build()
方法。目标是返回一个
容器
,该容器包含一个
下拉按钮
,并且
下拉按钮
已为
onChanged:
属性分配了项目列表(在类中定义)、所选元素(也在类中定义)和事件处理程序(这里还插入了其他小部件,目的是使其看起来更漂亮)


我将我的答案作为下拉列表的基础。你也可以查看答案中的链接。答案中的链接应用作补充资源或引文。请不要在大部分答案中依赖它们。链接可能会失效,或者另一端的信息可能会改为不再回答问题。请编辑答案以将答案包含在您链接到的信息。我修改了帖子以实际回答问题,抱歉仅提供链接。我想我会感谢您的回答,但我知道如何实现数据库。我的问题在下拉列表中显示,但现在解决了请参见
@override
_SettingsWidgetState createState() => new _SettingsWidgetState();
List _cities = [
  "Cluj-Napoca",
  "Bucuresti",
  "Timisoara",
  "Brasov",
  "Constanta"
];
@override
Widget build(BuildContext context) {
  return new Container(
    color: Colors.white,
    child: new Center(
        child: new Column(
      crossAxisAlignment: CrossAxisAlignment.center,
      mainAxisAlignment: MainAxisAlignment.center,
      children: <Widget>[
        new Text("Please choose your city: "),
        new Container(
          padding: new EdgeInsets.all(16.0),
        ),
        new DropdownButton(
          value: _currentCity,
          items: _dropDownMenuItems,
          onChanged: changedDropDownItem,
        )
      ],
    )),
  );
}
  void changedDropDownItem(String selectedCity) {
    setState(() {
      _currentCity = selectedCity;
    });
  }
}