0

`I have a problem how to call data from a list, and extract values from it inside a text'

Widget build(BuildContext context) {
    return BlocProvider(
      create: (context) => AppCubit()..getBusiness(),
      child: BlocConsumer<AppCubit, AppState>(
        listener: (context, state) {},
        builder: (context, state) {
          DataModel dataModel;
          var cubit = AppCubit.get(context);
          return Scaffold(
            appBar: AppBar(),
            body: Padding(
              padding: const EdgeInsets.all(8.0),
              child: SingleChildScrollView(
                child: Column(
                children: [
                ListView.separated(
                physics: const BouncingScrollPhysics(),
                shrinkWrap: true,
                  `itemBuilder: (context, index) => buildTest(cubit.dataModel!),`
                  separatorBuilder: (context, index) => const SizedBox(
                    height: 40,
                  ),
                  itemCount: 10),
                ],
              ),
              ),
            ),
          );
        },
      ),
    );
  }

  Widget buildTest(DataModel model) =>
      Column(mainAxisAlignment: MainAxisAlignment.center, children:  [
      `Text('${model.data![index].id}'),`
        const SizedBox(
          height: 5,
        ),
        const Text('employee_name'),
        const SizedBox(
          height: 5,
        ),
        const Text('mothers_maiden_name'),
        const SizedBox(
          height: 5,
        ),
        const Text('names'),
        const SizedBox(
          height: 5,
        ),
        const Text('anioReg'),
        const SizedBox(
          height: 5,
        ),
      ]);
}

`This is Cubit screen `

class AppCubit extends Cubit<AppState> {
  AppCubit() : super(AppInitial());

  static AppCubit get(context) => BlocProvider.of(context);

  // List<dynamic> business =[];

  DataModel?  dataModel;


  void getBusiness() {
    emit(HotelAppLoadingAppState());

    DioHelper.getData(

      methodUrl: 'api/v1/employees',
    ).then((value) {
      dataModel = DataModel.fromJson(value.data);
      print(dataModel.toString());
     print(dataModel!.data![0].id);
      emit(HotelAppSuccessAppState());
    }).catchError((error) {
      print(error.toString());
      emit(HotelAppErrorAppState(error));
    });
  }
}
class DataModel {
  String? status;
  List<Data>? data;
  String? message;

  DataModel({this.status, this.data, this.message});

  DataModel.fromJson(Map<String, dynamic> json) {
    status = json['status'];
    if (json['data'] != null) {
      data = <Data>[];
      json['data'].forEach((v) {
        data!.add(Data.fromJson(v));
      });
    }
    message = json['message'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['status'] = this.status;
    if (this.data != null) {
      data['data'] = this.data!.map((v) => v.toJson()).toList();
    }
    data['message'] = this.message;
    return data;
  }
}

class Data {
  int? id;
  String? employeeName;
  int? employeeSalary;
  int? employeeAge;
  String? profileImage;

  Data(
      {this.id,
        this.employeeName,
        this.employeeSalary,
        this.employeeAge,
        this.profileImage});

  Data.fromJson(Map<String, dynamic> json) {
    id = json['id'];
    employeeName = json['employee_name'];
    employeeSalary = json['employee_salary'];
    employeeAge = json['employee_age'];
    profileImage = json['profile_image'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['id'] = this.id;
    data['employee_name'] = this.employeeName;
    data['employee_salary'] = this.employeeSalary;
    data['employee_age'] = this.employeeAge;
    data['profile_image'] = this.profileImage;
    return data;
  }
}
Md. Yeasin Sheikh
  • 54,221
  • 7
  • 29
  • 56

0 Answers0