• 0

The argument type 'String' can't be assigned to the parameter type 'FlowerdataImage'.

السلام عليكم روحمة الله وبركاته

تحيه طيبه للجميع

قمت بعمل List View  في flutter

لعرض مجموعة من الصور التي تكون متواجده مسابقا على قاعدة البيانات بشكل التالي:

device-2021-05-22-165826.thumb.png.4c8f1ebdfa7b7b2dab96d62b62306d9f.png

عرض الصور شغال بشكل طبيعي لا توجد مشكله في جلب الصور من قاعدة البيانات . ولكن المشكله في جلب الصور من الجهاز في الكود التالي:

                      onTap: () async {
            PickedFile pickedFile = await picker.getImage(source: ImageSource.gallery, imageQuality: 50);
                                                                        setState(() {
                                                                          if (pickedFile != null) {
                                                                            filteredUsers.add(pickedFile.path);
                                                                          }
                                                                        });

                                                                      }

هنا احاول ان اقوم بتعبئة listview من الجهاز ولكن احصل على الخطاء التالي:

The argument type 'String' can't be assigned to the parameter type 'FlowerdataImage'.

 ما احاول فعله هو مشاهدة الصور التي تاتي من قاعدة البيانات واضافة صور لها من الجهاز في القائمة بدون عمل حفظ او ما شابه فقط اضافتها في القائمة 

 

وهذا الكود كامل المستعمل:


class _update extends State<UpdateItem> {
  @override
  void initState() {
    super.initState();

    GetImageOfTopic().then((value) {
      setState(() {
        users.addAll(value);
        filteredUsers = users;
      });
    });
  }
  List<FlowerdataImage> users = List();
  List<FlowerdataImage> filteredUsers = List();
  List<String> photoPaths = [];
  final picker = ImagePicker();

  String apiURL;
  Future<List<FlowerdataImage>> GetImage() async {
    apiURL = '*****************.php';
    var response = await http.post(Uri.parse(apiURL));
    if (response.statusCode == 200) {
      final items = json.decode(response.body).cast<Map<String, dynamic>>();
      List<FlowerdataImage> listOfFruits = items.map<FlowerdataImage>((json) {
        return FlowerdataImage.fromJson(json);
      }).toList();

      return listOfFruits;

      throw Exception('Failed to load data from Server.');
    }
  }

  @override
  Widget build(BuildContext context) {


    return new Scaffold(

      body: Form(

          child: new Center(
            child: ListView(
                    children: <Widget>[
                      Card(
                        child: new Column(
                          children: <Widget>[
                            Container(

                                  child: Center(
                                    child: Column(
                                      children: <Widget>[


                                     SingleChildScrollView(
                                            child: SizedBox(
                                              child: Column(

                                                children: <Widget>[
                                                  Padding(
                                                    padding:
                                                    EdgeInsets.only(right: 8.0, top: 8.0, ),
                                                    child: SizedBox(
                                                      height: 140,
                                                      child: Row(
                                                        children: [
                                                          Expanded(
                                                            child: Container(

                                                              child: ListView.builder(
                                                                itemCount: filteredUsers.length,
                                                                scrollDirection: Axis.horizontal,
                                                                itemBuilder: (BuildContextcontext, int index) {
                                                                  return InkWell(
                                                                    child: Padding(
                                                                        padding: EdgeInsets.only(top: 8.0, bottom: 8.0, left: 8.0, right: 8.0),
                                                                        child:
                                                                        Container(
                                                                            height: 140, width: 140,
                                                                            child:
                                                                            ClipRRect(
                                                                              borderRadius:
                                                                              BorderRadius.circular(8),
                                                                              child:
                                                                              AspectRatio(
                                                                                aspectRatio:
                                                                                1.2,
                                                                                child:
                                                                               Image.network(
                                                                                      filteredUsers[index].ImageURL.toString(),
                                                                                      width: double.infinity,
                                                                                      height: 400,
                                                                                      fit: BoxFit.cover,
                                                                                    ),

                                                                              ),
                                                                            ))),

                                                                  );
                                                                },
                                                              ),
                                                            ),
                                                          ),
                                                          Padding(
                                                            padding:
                                                            const EdgeInsets.only(left: 10, right: 10),
                                                            child: Container(
                                                                width: 50,
                                                                height: MediaQuery.of(
                                                                    context)
                                                                    .size
                                                                    .height,
                                                                decoration:
                                                                BoxDecoration(
                                                                  color:
                                                                  Theme.of(context)
                                                                      .accentColor,
                                                                  borderRadius:
                                                                  BorderRadius
                                                                      .circular(8),
                                                                ),
                                                                child: Material(
                                                                  color: CustomColors.Background,


                                                                  borderRadius:
                                                                  BorderRadius
                                                                      .circular(8),
                                                                  child: InkWell(
                                                                      borderRadius:
                                                                      BorderRadius
                                                                          .circular(
                                                                          8),
                                                                      child: Icon(
                                                                        Icons.add_a_photo,
                                                                        color: Theme.of(context).floatingActionButtonTheme.foregroundColor,
                                                                      ),
                                                                      onTap: () async {
            PickedFile pickedFile = await picker.getImage(source: ImageSource.gallery, imageQuality: 50);
                                                                        setState(() {
                                                                          if (pickedFile != null) {
                                                                            filteredUsers.add(pickedFile.path);
                                                                          }
                                                                        });

                                                                      }),
                                                                )),
                                                          )
                                                        ],
                                                      ),
                                                    ),
                                                  ),

                                                ],
                                              ),
                                            ),
                                          ),




                                      ],
                                    ),
                                  ),
                                ),





                          ],
                        ),
                      ),



                    ],
                  ),
          )),
    );
  }
}

 

 

class FlowerdataImage {
  int id;

  String ImageURL;

  FlowerdataImage({
    this.id,

    this.ImageURL,

  });

  factory FlowerdataImage.fromJson(Map<String, dynamic> json) {
    return FlowerdataImage(
      id: json['id'],

      ImageURL: json['image'].toString(),

    );
  }
}

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1

لاحظ أنك تقوم بإضافة نص إلى List FlowerdataImage لذلك هل يمكنك تغيير 

List<FlowerdataImage> filteredUsers = List();

إلى 

List<FlowerdataImage> filteredUsers = [];

أيضا يمكنك تعريف متغير من نوع File 

File _image;

ومن ثم إضافة المسار إلى هذا المتغير 

_image = File(pickedFile.path);

وعند الأستداعاء يمكنك استخدام 

Image.file(_image)

هل ممكن تشرح لي هذا 

اقتباس

 ما احاول فعله هو مشاهدة الصور التي تاتي من قاعدة البيانات واضافة صور لها من الجهاز في القائمة بدون عمل حفظ او ما شابه فقط اضافتها في القائمة 

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1
بتاريخ 4 دقائق مضت قال مروان مروان3:

@بلال زيادة

مرحبا اخي بلال

ما اقصده انني الان في وقت تشغيل التطبيق انا احصل على الصور من قاعدة البيانات ولكني احاول من خلال الزر الذي اضافته ان ادرج صور اضافيه في ListView ليشاهدها المستخدم وحتى استطيع لاحقا حفظها في قاعدة البيانات من خلال ListView 

تمام, هل ترفق لي ملفات المشروع كاملاً إذا لم ينجح الحل ؟ 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1
بتاريخ منذ ساعة مضت قال مروان مروان3:

مع الاسف لم ينجح الامر اخي نفس المشكله

المشكله ان المشروع كامل سيحتاج الى فصل لمشاركته

لا أرفقه كما هو

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

@بلال زيادة

مرحبا اخي بلال

ما اقصده انني الان في وقت تشغيل التطبيق انا احصل على الصور من قاعدة البيانات ولكني احاول من خلال الزر الذي اضافته ان ادرج صور اضافيه في ListView ليشاهدها المستخدم وحتى استطيع لاحقا حفظها في قاعدة البيانات من خلال ListView 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0
بتاريخ منذ ساعة مضت قال بلال زيادة:

تمام, هل ترفق لي ملفات المشروع كاملاً إذا لم ينجح الحل ؟ 

مع الاسف لم ينجح الامر اخي نفس المشكله

المشكله ان المشروع كامل سيحتاج الى فصل لمشاركته

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0
بتاريخ 19 دقائق مضت قال بلال زيادة:

لا أرفقه كما هو

تسلم اخي ساقوم بمحاولة فصله وتحميلها على استضافه اون لاين للمشاركة الحجم كبير جدا

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن