ошибка дротика RangeError (index): Invalid value: Only valid value is 0: 1 in android studio - PullRequest
0 голосов
/ 01 августа 2020

поэтому я заставляю приложения использовать язык программирования dart, и пока я запускаю свой код, я получаю сообщение об ошибке, я использую Android Studio Version 3.6.3 и API версии 30, я проверил весь свой код, как я могу получить ошибка, я должен был прочитать любой вопрос, похоже, моя ошибка в моем коде, но в моем случае это не работает.

это моя ошибка эмулятора:

введите описание изображения здесь

это моя ошибка logcat:

════════ Exception caught by widgets library ═══════════════════════════════════════════════════════
The following RangeError was thrown building:
RangeError (index): Invalid value: Only valid value is 0: 1

When the exception was thrown, this was the stack: 
#0      List.[] (dart:core-patch/growable_array.dart:146:60)
#1      __PageStateListState.build.<anonymous closure> (package:aplikasi_cemilan/main.dart:149:48)
#2      SliverChildBuilderDelegate.build (package:flutter/src/widgets/sliver.dart:446:22)
#3      SliverMultiBoxAdaptorElement._build.<anonymous closure> (package:flutter/src/widgets/sliver.dart:1134:67)
#4      _HashMap.putIfAbsent (dart:collection-patch/collection_patch.dart:139:29)
...
════════════════════════════════════════════════════════════════════════════════════════════════════

это мой код main.dart:

 @override
  Widget build(BuildContext context) {
    return Container(
      child: ListView.builder(
          itemCount: judul.length,
          itemBuilder: (BuildContext contex, int index) {
            final title = judul[index].toString();
            final subTitle = subjudul[index].toString();
            final jumlah = jmlh[index].toString();
            final img = gambar[index].toString();
            final bahan = bahanbahan[index].toString();
            final bahanlist = listbahan[index].toString();
            final bahanlist2 = listbahan2[index].toString();
            final pembuatancara = carapembuatan[index].toString();
            return Container(
              height: 200.0,
              padding: EdgeInsets.all(8.0),
              child: GestureDetector(
                  child: Stack(
                    children: <Widget>[
                      backgroundImage(img),
                      Container(
                        child: topContent(title, subTitle, jumlah, bahan,
                            bahanlist, bahanlist2, pembuatancara),
                      )
                    ],
                  ),
                  onTap: () {
                    Navigator.push(
                        context,
                        MaterialPageRoute(
                            builder: (context) => DetailPage(
                                  itemJudul: title,
                                  itemSub: subTitle,
                                  qty: jumlah,
                                  itemImage: img,
                                  bahanbahan: bahan,
                                  listbahanan: bahanlist,
                                  listbahan2: bahanlist2,
                                  carapembuatanan: pembuatancara,
                                )));
                  }),
            );
          }),
    );
  }

это мой DetailPage.dart:

@override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
          backgroundColor: Colors.redAccent,
          title: Text(
            'Detail ' + itemJudul,
            style: TextStyle(color: Colors.white),
          )),
      body: Column(

        mainAxisSize: MainAxisSize.min,
        mainAxisAlignment: MainAxisAlignment.start,
        children: <Widget>[
          Center(child: Image.asset(itemImage)),
          Text(
            itemJudul,
            style: TextStyle(color: Colors.redAccent, fontSize: 30.0),
          ),
          Container(
            width: 200,
            child: Text("Bahan Bahan",
                textAlign: TextAlign.center,
                style: new TextStyle(fontWeight: FontWeight.bold) // has impact
            ),
            alignment: Alignment.topCenter,
          ),
          Row( // this is new
            children: <Widget>[
              Flexible( // this is new
                child: Text(
                  listbahanan,
                  textAlign: TextAlign.left,
                ),
              ),
              Flexible( // this is new
                child: Text(
                  listbahan2,
                  textAlign: TextAlign.right,
                ),
              ),
              Flexible(
                child: Text(
                  carapembuatanan,
                  textAlign: TextAlign.left,
                ),
              ),
            ],
          ),
        ],
      ),
    );
  }

это моя строка переменной внутри класса main.dart:

class __PageStateListState extends State<_PageList> {
  List<String> judul = [
    'Ayam bakar',
    'coklat',
    'indomieaceh',
    'nasigoreng',
    'pecellele',
    'rendang',
    'sotobetawi',
    'keleopn',
    'mieaceh',
    'sate',
  ];

  List<String> subjudul = [
    'makanan enak banget',
    'gua suka banget sama makan coklat',
    'indomie enak kuy',
    'bosen banget makan nasigorang , di idn makanannya jangan nasigoreng terus dong',
    'apa lagi pecel lele , udah bosen IDN!!! wa udah bosen sama pecel lele',
    'eh idn , kali kali makannya rendang dong!!',
    'makananya soto betawi dong , jangan soto biasa terus bosen gua!!',
    'kali kali lah idn jajanin kelepon',
    'bikinin mie aceh juga dong IDN!!!!',
    'emang IDN Miskin Noob gak bisa beli sate !!!!',
  ];

  List<String> gambar = [
    'assets/images/ayambakar.png',
    'assets/images/coklat.png',
    'assets/images/indomieaceh.png',
    'assets/images/nasigoreng.png',
    'assets/images/pecellele.png',
    'assets/images/rendang.png',
    'assets/images/sotobetawi.png',
    'assets/images/keleopn.png',
    'assets/images/mieaceh.png',
    'assets/images/sate.png',
  ];

  List<String> jmlh = [
    '20',
    '20',
    '20',
    '20',
    '20',
    '20',
    '20',
    '20',
    '20',
    '20',
    '20',
    '20',
    '20',
  ];

  List<String> bahanbahan = [
    'bahan bahan',
    'bahan bahan',
    'bahan bahan',
    'bahan bahan',
    'bahan bahan',
    'bahan bahan',
    'bahan bahan',
    'bahan bahan',
    'bahan bahan',
    'bahan bahan',
  ];
  List<String> listbahan = [
    '1. 1 kg Ayam\n 2.Bumbu ungkep :\n 3. 10 Bawang putih\n 4. 1 sdt ketumbar\n  5. 1 sdt merica butir\n  6. 5 butir Kemiri\n 7. Lengkuas\n 8. Beberapa ruas kunyit\n  9. 3 cm jahe (digeprek)\n  10. Garam\n  ',
    '1. 200 gr susu cair\n 2.100 gr skm\n 3.10 gr coklat powder/coklat pahit\n  4.8 gr maizena\n  5.100 gr dcc potong2\n  6.20 gr butter/margarin\n 7.Sejumput garam\n 8. Sponge cake strawberry/mocca:\n  ',
    '1. 3 bungkus Mie instan\n 2. 2 sendok Kecap \n 3. Bumbu\n 4. 2 biji kemiri\n 5. 5 biji Cabe \n 6. 3 Bawang merah \n 7. 1 Bawang putih\n 8. 1 Tomat\n 9. 2 sendok teh Garam\n 10. 1/2 sendok teh Merica\n   ',
    '1. 1 piring nasi dingin\n  2. 5 bh cabe rawit,\n iris 3. 3 bh bawang merah,\n iris  4. 2 siung bawang putih,\n iris  5. 1 btr telur\n  6. 1 sdm kecap manis\n  7. 1 sdm kecap asin\n  8. 1/2 sdt gula pasir\n 9. 1/2 sdt merica\n  10. secukupnya Garam\n ',
    '1. Ikan lele 3 ekor\n 2.  Minyak goreng untuk menggoreng ikan\n 3. Bawang putih - 3 siung\n 4. Kunyit - 1/2 ruas\n 5.  Garam - 1/4 sdt\n 6. Cabe rawit - 10\n buah 7. Cabe besar - 3\n buah 8. Bawang merah - 3 siung\n 9.  Tomat - 1 buah\n',
    '1. 700 gram daging kambing\n  2.1 butir kelapa parut / 1000 ml santan\n  3. 1 potong asam gelugur\n  4. 4 lbr daun jeruk purut\n  5. secukupnya Garam\n  6. 1 lbr daun kunyit\n 7. 2 lbr daun salam\n  8. 2 buah bunga lawang\n  Bumbu dihaluskan :\n 9. 200 gram cabe merah\n  ',
    'bahan bahan',
    'bahan bahan',
    'bahan bahan',
    'bahan bahan',
  ];

  List<String> listbahan2 = [
    '11. 4 lembar daun salam\n 12. Bumbu olesan :\n 13. 4 siung bawang putih\n  14. 1 sdt ketumbar\n  15. 20 cabai rawit (sesuaikan dgn selera)\n  16. Kecap manis\n  17. 1 buah jeruk limau/nipis\n  18. Minyak\n   ',
    '9.4 kuning telur\n  10.4 putih telur\n 11. 80 gr gula pasir\n  12. 80 gr susu cair\n  13. 1 sdt pasta stroberry/mocca\n  14. 50 gr minyak\n  15. 80 gr terigu serbaguna\n  16. 1 sdt baking powder\n ',
    '',
    '',
    '10. Terasi - 1/2 sdt\n 11. Gula merah - 1/2 sdm\n 12. Minyak untuk menggoreng - 3 sdm\n 13. Garam - secukupnya\n  ',
    '10. 100 gram bawang merah\n  11. 2 siung bawang putih\n  12. 4 cm jahe\n  13. 8 cm kunyit\n  14. 10 cm langkuas\n  15. 2 buah kemiri\n  16. 1 batang sreh\n  17. 1 sdm ketumbar\n  18. 1/2 buah pala\n  19. 1/2 sdt jintan\n   ',
    'bahan bahan',
    'bahan bahan',
    'bahan bahan',
    'bahan bahan',
  ];

  List<String> carapembuatan = [
    '1. Ulek semua bumbu ungkep lalu tumis hingga harum, beri air, masukkan daun salam dan ayam. Ungkep kurang lebih 1 jam agar daging empuk. Angkat dan lalu buat beberapa belahan agar ketika dibakar, bumbu meresap sampai ke dalam',
  ];

Ответы [ 2 ]

0 голосов
/ 01 августа 2020

Вы пытаетесь получить index, которого нет в списке carapembuatan.

Чтобы исправить, вы можете:

  1. Заполнить carapembuatan список с пустым Strings, как и в других списках.
 List<String> carapembuatan = [
    '1. Ulek semua bumbu ungkep lalu tumis hingga harum, beri air, masukkan daun salam dan ayam. Ungkep kurang lebih 1 jam agar daging empuk. Angkat dan lalu buat beberapa belahan agar ketika dibakar, bumbu meresap sampai ke dalam',
   '',
   .... // up to ten items
   '',
  ];
Передать жестко запрограммированный индекс 0 в список carapembuatan.
 // pass a hardcoded value of 0 as the index 
 final pembuatancara = carapembuatan[0].toString();
0 голосов
/ 01 августа 2020

Замените final pembuatancara = carapembuatan[index]; на

final pembuatancara = carapembuatan[0];, поскольку у него только один дочерний элемент.

...