0
好吧,我有一个包含大量列和行的表,并且需要从SQLite数据库中填充每个TextView。这就是我正在做的(深呼吸你注视它之前,它是你见过最糟糕的代码之一):动态更改要调用的变量
populateUrnik("Ponedeljek", 1, razred, pon1, pon1u);
populateUrnik("Torek", 1, razred, tor1, tor1u);
populateUrnik("Sreda", 1, razred, sre1, sre1u);
populateUrnik("Četrtek", 1, razred, cet1, cet1u);
populateUrnik("Petek", 1, razred, pet1, pet1u);
populateUrnik("Ponedeljek", 2, razred, pon2, pon2u);
populateUrnik("Torek", 2, razred, tor2, tor2u);
populateUrnik("Sreda", 2, razred, sre2, sre2u);
populateUrnik("Četrtek", 2, razred, cet2, cet2u);
populateUrnik("Petek", 2, razred, pet2, pet2u);
populateUrnik("Ponedeljek", 3, razred, pon3, pon3u);
populateUrnik("Torek", 3, razred, tor3, tor3u);
populateUrnik("Sreda", 3, razred, sre3, sre3u);
populateUrnik("Četrtek", 3, razred, cet3, cet3u);
populateUrnik("Petek", 3, razred, pet3, pet3u);
populateUrnik("Ponedeljek", 4, razred, pon4, pon4u);
populateUrnik("Torek", 4, razred, tor4, tor4u);
populateUrnik("Sreda", 4, razred, sre4, sre4u);
populateUrnik("Četrtek", 4, razred, cet4, cet4u);
populateUrnik("Petek", 4, razred, pet4, pet4u);
populateUrnik("Ponedeljek", 5, razred, pon5, pon5u);
populateUrnik("Torek", 5, razred, tor5, tor5u);
populateUrnik("Sreda", 5, razred, sre5, sre5u);
populateUrnik("Četrtek", 5, razred, cet5, cet5u);
populateUrnik("Petek", 5, razred, pet5, pet5u);
populateUrnik("Ponedeljek", 6, razred, pon6, pon6u);
populateUrnik("Torek", 6, razred, tor6, tor6u);
populateUrnik("Sreda", 6, razred, sre6, sre6u);
populateUrnik("Četrtek", 6, razred, cet6, cet6u);
populateUrnik("Petek", 6, razred, pet6, pet6u);
populateUrnik("Ponedeljek", 7, razred, pon7, pon7u);
populateUrnik("Torek", 7, razred, tor7, tor7u);
populateUrnik("Sreda", 7, razred, sre7, sre7u);
populateUrnik("Četrtek", 7, razred, cet7, cet7u);
populateUrnik("Petek", 7, razred, pet7, pet7u);
populateUrnik("Ponedeljek", 8, razred, pon8, pon8u);
populateUrnik("Torek", 8, razred, tor8, tor8u);
populateUrnik("Sreda", 8, razred, sre8, sre8u);
populateUrnik("Četrtek", 8, razred, cet8, cet8u);
populateUrnik("Petek", 8, razred, pet8, pet8u);
populateUrnik("Ponedeljek", 9, razred, pon9, pon9u);
populateUrnik("Torek", 9, razred, tor9, tor9u);
populateUrnik("Sreda", 9, razred, sre9, sre9u);
populateUrnik("Četrtek", 9, razred, cet9, cet9u);
populateUrnik("Petek", 9, razred, pet9, pet9u);
populateUrnik("Ponedeljek", 10, razred, pon10, pon10u);
populateUrnik("Torek", 10, razred, tor10, tor10u);
populateUrnik("Sreda", 10, razred, sre10, sre10u);
populateUrnik("Četrtek", 10, razred, cet10, cet10u);
populateUrnik("Petek", 10, razred, pet10, pet10u);
populateUrnik("Ponedeljek", 11, razred, pon11, pon11u);
populateUrnik("Torek", 11, razred, tor11, tor11u);
populateUrnik("Sreda", 11, razred, sre11, sre11u);
populateUrnik("Četrtek", 11, razred, cet11, cet11u);
populateUrnik("Petek", 11, razred, pet11, pet11u);
因此,大家可以看到,我只更换3调用这些函数时的情况:1-11和两个textview变量pon1,pon1u等的数字(文字查看)
有没有办法让一个for循环改变哪个变量来调用dyinamiaclly?可能是这样的:
for (int i = 1; i <= 11; i++){
populateUrnik("Ponedeljek", i, razred, pon(i), pon(i)u);
}
我知道上面的语法是不可能的,但我只是试图说明我想实现什么。
有关如何改善这种长而糟糕的代码的任何其他建议将非常受欢迎!
使用反射。 http://docs.oracle.com/javase/tutorial/reflect/ – dinesh707