我目前正在做一个项目,我注意到我最终经常复制大块代码。我知道这不是人们应该怎么做,但我还没有找到更好的方法。大多数情况下,我只需要根据特定值将 ImageResource 设置为布局对象。如此重复25次,把img1改成img2之类的,真的很痛苦。有没有办法更正确、更快地做到这一点?请参阅下面的示例。
我的意思的一个小例子
if(!b1){
foobar = rewardrandom.nextInt(100)+1;
if (foobar <= 40){
r1= 0;
img1.setImageResource(R.drawable.empty);
}
if (foobar > 40 && foobar <=70){
r1= 1;
img1.setImageResource(R.drawable.item1);
}
if (foobar > 70 && foobar<=90){
r1= 2;
img1.setImageResource(R.drawable.item2);
}
if (foobar > 90){
r1= 3;
img1.setImageResource(R.drawable.item3);
}
}
if(!b2){
foobar = rewardrandom.nextInt(100)+1;
if (foobar <= 40){
img2.setImageResource(R.drawable.empty);
r2 = 0;
}
if (foobar > 40 && foobar <=70){
img2.setImageResource(R.drawable.item1);
r2 = 1;
}
if (foobar > 70 && foobar<=90){
img2.setImageResource(R.drawable.item2);
r2 = 2;
}
if (foobar > 90){
img2.setImageResource(R.drawable.item3);
r2 = 3;
}
}
你可以通过制作这样的方法来缩短它
private int yourMethodName (boolean condition, ImageView img, int r){
if (!condition){
foobar = rewardrandom.nextInt(100)+1;
if (foobar <= 40){
r = 0;
img.setImageResource(R.drawable.empty);
}
if (foobar > 40 && foobar <=70){
r = 1;
img.setImageResource(R.drawable.item1);
}
if (foobar > 70 && foobar<=90){
r = 2;
img.setImageResource(R.drawable.item2);
}
if (foobar > 90){
r = 3;
img.setImageResource(R.drawable.item3);
}
}
return r;
}
并像这样使用它
r1 = yourMethodName(b1, img1, r1);
r2 = yourMethodName(b2, img2, r2);
r2 = yourMethodName(b3, img3, r3);
// etc...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句