当我单击一个项目时,我会有一个项目列表,它将进入下一个屏幕,因此当我尝试传递给它时,我可以显示所单击项目的相应详细信息,将整个对象数据传递给下一个页面< / p>
我显示了杰森数据,但我只需要将包含我的Area_Id对象的_id传递给下一个屏幕
"Area_Id": {
"_id": "5e27ffbccde0456455857c27",
"Area_Name": "Morning meeting photo"
},
"AreaList": [
{
"Report_Time_Type": 1,
"WeakDay": "Friday",
"_id": "5e27ffc0cde0456455857c4f",
"Branch_Id": {
"_id": "5e27ffb7cde0456455857c21",
"Name": "CHERTHALA",
"Order_Id": 4
},
"Section_Id": {
"_id": "5e27ffb9cde0456455857c25",
"Section_Head": "Sales",
"Order_Id": 1
},
"Area_Id": {
"_id": "5e27ffbccde0456455857c27",
"Area_Name": "Morning meeting photo"
},
"From_Time": "9:00 AM",
"To_Time": "9:05 AM"
},
]
这是首页代码颤振视图
return Column(
children: <Widget>[
GestureDetector(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ImageScreen(data.Area_Id)));
},
child: Card(
elevation: 15,
child: Column(
mainAxisSize: MainAxisSize.max,
children: <Widget>[
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
Expanded(
flex: 3,
child: Padding(
padding: EdgeInsets.all(30),
child: Text(
data.Area_Name.toString(),
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 14,
color: Colors.black87),
),
),
),
],
)
],
),
),
),
Future<String> getDailyList() async {
Future dailystatus = SharedPrefrence().getbranchId();
Future daily = SharedPrefrence().getsectionId();
Future token = SharedPrefrence().getToken();
dailystatus.then((data) async {
var branchid = data;
daily.then((data) async {
var section_id = data;
token.then((data) async {
var token = data;
var response = await http.post(Urls.BRANCH_MAPPER,
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer $token",
},
body: json.encode({
"Report_Time_Type": "1",
"Branch_Id": branchid,
"Section_Id": section_id,
}));
print('Respone ${response.body}');
if (response.statusCode == 200) {
try {
var resp = response.body;
Map<String, dynamic> value = json.decode(resp);
var report = value['AreaList'];
for (int i = 0; i < report.length; i++) {
var data = report[i];
var areaName = data["Area_Id"]["Area_Name"];
Dailylist.add(DailyModel.fromJson(data, areaName));
}
setState(() {
array_lenth = Dailylist.length;
});
} catch (e) {
e.toString();
}
}
});
});
});
}
}
和首页的此模型
class DailyModel {
String id;
String From_Time;
String To_Time;
String Area_Name;
String WeakDay;
String Report_Time_Type;
String Area_Id;
DailyModel({this.id,this.From_Time,this.To_Time,this.Area_Name,this.WeakDay,this.Report_Time_Type,this.Area_Id});
DailyModel.fromJson(json, areaName)
: id = json['_id'].toString(),
From_Time = json['From_Time'].toString(),
To_Time = json['To_Time'].toString(),
WeakDay = json['WeakDay'].toString(),
Area_Id = json['_Id'].toString(),
Report_Time_Type = json['Report_Time_Type'].toString(),
Area_Name = areaName;
}
答案 0 :(得分:0)
我确实认为这是正确的ImageModel data = Imagelist[index];
也许您应该删除ImageScreen
类。
您可以改为这样做
class BranchDailyScreen extends StatefulWidget {
@override
_BranchDailyScreenState createState() => _BranchDailyScreenState();
}
class _BranchDailyScreenState extends State<BranchDailyScreen> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Branch Daily Screen'),
),
body: Container(
padding: const EdgeInsets.all(8),
child: ListView.builder(
itemCount: 10,
itemBuilder: (context, index) {
return InkWell(
onTap: () => Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ImageScreen(area_id: '$index'))),
child: Card(
child: Text('Item# $index'),
),
);
}),
),
);
}
}
然后转到图像屏幕
class ImageScreen extends StatefulWidget {
final String area_id;
const ImageScreen({Key key, this.area_id}) : super(key: key);
@override
_ImageScreenState createState() => _ImageScreenState();
}
class _ImageScreenState extends State<ImageScreen> {
String image = 'https://picsum.photos/250?image=';
@override
Widget build(BuildContext context) {
print(widget.area_id);
return Scaffold(
appBar: AppBar(
title: Text(widget.area_id),
),
body: Center(
child: Image.network('$image${widget.area_id}'),
),
);
}
}
答案 1 :(得分:0)
在模型定义中
class DailyModel {
String id;
String From_Time;
String To_Time;
String Area_Name;
String WeakDay;
String Report_Time_Type;
String Area_Id;
DailyModel({this.id,this.From_Time,this.To_Time,this.Area_Name,this.WeakDay,this.Report_Time_Type,this.Area_Id});
DailyModel.fromJson(json, areaName)
: id = json['_id'].toString(),
From_Time = json['From_Time'].toString(),
To_Time = json['To_Time'].toString(),
WeakDay = json['WeakDay'].toString(),
Area_Id = json['_Id'].toString(),
Report_Time_Type = json['Report_Time_Type'].toString(),
Area_Name = areaName;
}
我认为您输入错了
Area_Id = json['_Id'].toString(),
应该是
Area_Id = json['_id'].toString(),