我已经创建了一个sqlite数据库,并已经用两个表tbl_genres和tbl_books填充了该数据库,我通过像这样进行原始sql查询来在颤抖的情况下调用它们。
_genreList= await db.rawQuery('SELECT genre_name[] FROM tbl_genres');
,然后使用ListView.builder将其放置到页面上,其中页面显示类型列表。
title: new Text("${_genreList[index]}")
然后,我希望能够通过onTap()方法选择一种类型,以导航到一个新页面,该页面显示该特定类型中tbl_books中的所有书籍。为此,我尝试获取所选类型的ID,并将其传递到下一页,以便在下一页上的原始sql查询中执行类似的操作。
select * from tbl_books where genre_id = (passed id of selected value)
如何插入数据以显示与“类型”相关的所有数据“书”?
答案 0 :(得分:0)
首先:建立一个新页面,将其称为“ DetailsPage”,并将其放入details.dart文件
import 'package:flutter/material.dart';
class DetailsPage extends StatefulWidget {
int id;
DetailsPage({this.id});
@override
_DetailsPageState createState() => new _DetailsPageState();
}
class _DetailsPageState extends State<DetailsPage> {
final int id;
_DetailsPageState({this.id});
@override
void initState() {
// TODO: implement initState
super.initState();
// get the data from db here
print("id is : " + id.toString());
}
@override
Widget build(BuildContext context) {
return new Scaffold(
// in app bar you can modify the themes, the bar .. etc
appBar: new AppBar(
title: new Text("title"),
),
body: new Text("Details Container ")
);
}
}
现在在您的listView视图中,导入此文件“ details.dart” 现在您可以导航到它:
new GestureDetector(
onTap: (){
Navigator.push(context, new MaterialPageRoute(builder: (context)=> new DetailsPage(id: 5,)));
},
child: new Text("id : 5"),
)
将ID传递到下一页,然后可以使用
select * from tbl_books where genre_id = 5
答案 1 :(得分:0)
只想问你表tbl_genres
内的哪些列?
如果我假设应该有一个名为id的表,并且根据您的要求它包含整数值,您可以执行的操作是在@Yousuf Al-Mawali {{1} }并且你很好。
Link to his answer here