OmerAti adlı üyeden alıntı: mesajı görüntüle
butonFonksiyonu(bool secilenButon) {

tamamını

List<Soru> _soruBankasi=[

tamamını paylaşırmısın kullanıcı cevap verdiğinde çağrılacak fonksiyon nasıl tahmin edelim daha fazla kod paylasimi yaparmısın ?
Tabi öncelikle sorumu cevapladığınız için teşekkür ederim. Bu Soru sayfasının tamamı

class SoruSayfasi extends StatefulWidget {

@override
_SoruSayfasiState createState() => _SoruSayfasiState();
}

class _SoruSayfasiState extends State<SoruSayfasi> {
List<Widget> secimler = [];
TestVeri test_1=TestVeri();


butonFonksiyonu (bool secilenButon){

if(test_1.testBittiMi()==true){
showDialog<void>(
context: context,
barrierDismissible: false, // user must tap button!
builder: (BuildContext context) {
return AlertDialog(
title: const Text('Sorular Bitti'),
content: const SingleChildScrollView(
child: ListBody(
children: <Widget>[
Text('Doğru ve yanlış adedi burada yazacak'),
Text('Bir sonraki teste geçiniz'),
],
),
),
actions: <Widget>[
TextButton(
child: const Text('Kabul Et'),
onPressed: () {
Navigator.of(context).pop();
setState(() {
test_1.testiSifirla();
secimler= [];
});

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

setState(() {
test_1.testiSifirla();
secimler= [];
});

}

else {
setState(() {
test_1.getSoruYaniti() == secilenButon
? secimler.add(kDogruIkonu)
: secimler.add(kYanlisIkonu);
test_1.sonrakiSoru();
});
}
}

@override
Widget build(BuildContext context) {
return SafeArea(
child: Scaffold(
appBar: AppBar(centerTitle: true,
title: Text('YDT'),
),
backgroundColor: Colors.indigo[700],
body: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
Expanded(
flex: 4,
child: Padding(
padding: EdgeInsets.all(10.0),
child: Center(
child: Text(
test_1.getSoruMetni(),
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 20.0,
color: Colors.white,
),
),
),
),
),
Wrap(
alignment: WrapAlignment.center,
spacing: 3,
runSpacing: 3,
children: secimler,
),
Expanded(
flex: 1,
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 6.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
Expanded(
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 6),
child: ElevatedButton(
style: ElevatedButton.styleFrom(
padding: EdgeInsets.all(12),
backgroundColor: Colors.red[400],
),
onPressed: () {
butonFonksiyonu(false);
},
child: Icon(
Icons.thumb_down,
size: 30.0,
color: Colors.white,
),
),
),
),
Expanded(
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 6),
child: ElevatedButton(
style: ElevatedButton.styleFrom(
padding: EdgeInsets.all(12),
backgroundColor: Colors.green[400],
),
onPressed: () {
butonFonksiyonu(true);
},
child: Icon(
Icons.thumb_up,
size: 30.0,
color: Colors.white,
),
),
),
),
],
),
),
),
],
),
),
);
}
}
Bu da TestVeri sayfamın tamamı

class TestVeri{
int _soruIndex = 0;
  List<Soru> _soruBankasi=[
Soru(soruMetni: ',,Hallo!’’ ist eine Begrüßung auf Deutsch.',soruYaniti: true),
    Soru(soruMetni: ',,Tschüss’’ ist eine Verabschiedung auf Deutsch.',soruYaniti: true),
    Soru(soruMetni: ',,Guten Morgen’’ ist eine Verabschiedung auf Deutsch.',soruYaniti: false),
    Soru(soruMetni: ',,Guten Tag’’ ist eine Begrüßung auf Deutsch.',soruYaniti: true),
    Soru(soruMetni: ',,Auf Wiedersehen’’ ist eine Begrüßung auf Deutsch.',soruYaniti: false),
    Soru(soruMetni: ',,Bis später’’ ist eine Verabschiedung auf Deutsch.',soruYaniti: true),
    Soru(soruMetni: ',,Gute Nacht’’ ist eine Verabschiedung auf Deutsch.',soruYaniti: true),
    Soru(soruMetni: ',, :) ’’ Es geht mir gut!',soruYaniti: true),
    Soru(soruMetni: ',, :( ’’ Es geht mir nicht gut!',soruYaniti: true),
    Soru(soruMetni: ',, :/ ’’ Es geht so!',soruYaniti: true),
    Soru(soruMetni: ',, :) ’’ Es geht mir schlecht!',soruYaniti: false),
    Soru(soruMetni: ',, :( ’’ Es geht mir toll!',soruYaniti: false),
    Soru(soruMetni: ',, :) ’’ Es geht mir nicht so gut!',soruYaniti: false),
    Soru(soruMetni: ',, :/ ’’ Nicht schlecht!',soruYaniti: true),
    Soru(soruMetni: ',, :) ’’ Es geht mir super!',soruYaniti: true),
    Soru(soruMetni: ',, :) ’’ Es geht mir sehr gut!',soruYaniti: true),

  ];
String getSoruMetni (){
return _soruBankasi[_soruIndex].soruMetni;
}
bool getSoruYaniti (){
return _soruBankasi[_soruIndex].soruYaniti;
  }
void sonrakiSoru (){
if(_soruIndex<_soruBankasi.length-1)
_soruIndex++;
  }

bool testBittiMi(){
if(_soruIndex>=_soruBankasi.length-1){
return true;
    }else{
return false;
    }
}
void testiSifirla(){
_soruIndex=0;
  }
}
Hocam benim sorum örneğin test1, test2 test3 gibi butonlarım var. Bunlara tıklandığında Testveri, Testveri1, Testveri2 gibi soruların olduğu sayfayı navigator ile çağırmak istiyorum. Navigatoru Soru sayfasına yönlendirip örneğin SoruSayfasının TestVeri2 adlı bölümünü çağırmak istiyorum.

Örneğin şu şekilde çağırdığımda direk Soruların olduğu sayfa açılıyor.

Navigator.push(
context,
  MaterialPageRoute(builder: (context) => SoruSayfasi()),
bu SoruSayfasi() parantezinin içine TestVeri, TestVeri1, Testveri2 gibi yazarak ben farklı testleri çağırabilir miyim
Her test için ayrı bir SoruSayfası ve soruların içinde olduğu TestVeri sayfası yapmak istemiyorum. Bunun bir kısa yolu olmalı diye düşünüyorum