【发布时间】:2017-08-10 11:48:24
【问题描述】:
我正在做一种减少和增加数字的按钮,但我需要 16 个单独的数字,之后我需要对数字进行计算。我有一个代码来减少、增加和计算这个数字,但我需要将数字传递给 methodResult。我不能为每个参数传递参数,因为我认为这不是生产性的并且会花费处理,因为这个应用程序是为 android 开发的。
public class TaxasFragment extends Fragment {
//Upward i have some variable declarations and etc etc...
//Decrease button function
int contador = 0;
while(contador < 16) {
buttonsDiminuir.get(contador).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.botao_diminuir:
if(valorExibido[0] > 0) {
valorExibido[0]--;
String textoExibido = "" + valorExibido[0];
buttonsExibir.get(0).setText(textoExibido);
}
break;
case R.id.botao_diminuir2:
if(valorExibido[1] > 0) {
valorExibido[1]--;
String textoExibido2 = "" + valorExibido[1];
buttonsExibir.get(1).setText(textoExibido2);
}
break;
case R.id.botao_diminuir3:
if(valorExibido[2] > 0) {
valorExibido[2]--;
String textoExibido3 = "" + valorExibido[2];
buttonsExibir.get(2).setText(textoExibido3);
}
break;
case R.id.botao_diminuir4:
if(valorExibido[3] > 0) {
valorExibido[3]--;
String textoExibido4 = "" + valorExibido[3];
buttonsExibir.get(3).setText(textoExibido4);
}
break;
case R.id.botao_diminuir5:
if(valorExibido[4] > 0) {
valorExibido[4]--;
String textoExibido5 = "" + valorExibido[4];
buttonsExibir.get(4).setText(textoExibido5);
}
break;
case R.id.botao_diminuir6:
if(valorExibido[5] > 0) {
valorExibido[5]--;
String textoExibido6 = "" + valorExibido[5];
buttonsExibir.get(5).setText(textoExibido6);
}
break;
case R.id.botao_diminuir7:
if(valorExibido[6] > 0) {
valorExibido[6]--;
String textoExibido7 = "" + valorExibido[6];
buttonsExibir.get(6).setText(textoExibido7);
}
break;
case R.id.botao_diminuir8:
if(valorExibido[7] > 0) {
valorExibido[7]--;
String textoExibido8 = "" + valorExibido[7];
buttonsExibir.get(7).setText(textoExibido8);
}
break;
case R.id.botao_diminuir9:
if(valorExibido[8] > 0) {
valorExibido[8]--;
String textoExibido9 = "" + valorExibido[8];
buttonsExibir.get(8).setText(textoExibido9);
}
break;
case R.id.botao_diminuir10:
if(valorExibido[9] > 0) {
valorExibido[9]--;
String textoExibido10 = "" + valorExibido[9];
buttonsExibir.get(9).setText(textoExibido10);
}
break;
case R.id.botao_diminuir11:
if(valorExibido[10] > 0) {
valorExibido[10]--;
String textoExibido11 = "" + valorExibido[10];
buttonsExibir.get(10).setText(textoExibido11);
}
break;
case R.id.botao_diminuir12:
if(valorExibido[11] > 0) {
valorExibido[11]--;
String textoExibido12 = "" + valorExibido[11];
buttonsExibir.get(11).setText(textoExibido12);
}
break;
case R.id.botao_diminuir13:
if(valorExibido[12] > 0) {
valorExibido[12]--;
String textoExibido13 = "" + valorExibido[12];
buttonsExibir.get(12).setText(textoExibido13);
}
break;
case R.id.botao_diminuir14:
if(valorExibido[13] > 0) {
valorExibido[13]--;
String textoExibido14 = "" + valorExibido[13];
buttonsExibir.get(13).setText(textoExibido14);
}
break;
case R.id.botao_diminuir15:
if(valorExibido[14] > 0) {
valorExibido[14]--;
String textoExibido15 = "" + valorExibido[14];
buttonsExibir.get(14).setText(textoExibido15);
}
break;
case R.id.botao_diminuir16:
if(valorExibido[15] > 0) {
valorExibido[15]--;
String textoExibido16 = "" + valorExibido[15];
buttonsExibir.get(15).setText(textoExibido16);
}
break;
}
}
});
contador++;
}
//Increase button function
int contador2 = 0;
while(contador2 < 16) {
buttonsAumentar.get(contador2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.botao_aumentar:
valorExibido[0]++;
String textoExibido = "" + valorExibido[0];
buttonsExibir.get(0).setText(textoExibido);
break;
case R.id.botao_aumentar2:
valorExibido[1]++;
String textoExibido2 = "" + valorExibido[1];
buttonsExibir.get(1).setText(textoExibido2);
break;
case R.id.botao_aumentar3:
valorExibido[2]++;
String textoExibido3 = "" + valorExibido[2];
buttonsExibir.get(2).setText(textoExibido3);
break;
case R.id.botao_aumentar4:
valorExibido[3]++;
String textoExibido4 = "" + valorExibido[3];
buttonsExibir.get(3).setText(textoExibido4);
break;
case R.id.botao_aumentar5:
valorExibido[4]++;
String textoExibido5 = "" + valorExibido[4];
buttonsExibir.get(4).setText(textoExibido5);
break;
case R.id.botao_aumentar6:
valorExibido[5]++;
String textoExibido6 = "" + valorExibido[5];
buttonsExibir.get(5).setText(textoExibido6);
break;
case R.id.botao_aumentar7:
valorExibido[6]++;
String textoExibido7 = "" + valorExibido[6];
buttonsExibir.get(6).setText(textoExibido7);
break;
case R.id.botao_aumentar8:
valorExibido[7]++;
String textoExibido8 = "" + valorExibido[7];
buttonsExibir.get(7).setText(textoExibido8);
break;
case R.id.botao_aumentar9:
valorExibido[8]++;
String textoExibido9 = "" + valorExibido[8];
buttonsExibir.get(8).setText(textoExibido9);
break;
case R.id.botao_aumentar10:
valorExibido[9]++;
String textoExibido10 = "" + valorExibido[9];
buttonsExibir.get(9).setText(textoExibido10);
break;
case R.id.botao_aumentar11:
valorExibido[10]++;
String textoExibido11 = "" + valorExibido[10];
buttonsExibir.get(10).setText(textoExibido11);
break;
case R.id.botao_aumentar12:
valorExibido[11]++;
String textoExibido12 = "" + valorExibido[11];
buttonsExibir.get(11).setText(textoExibido12);
break;
case R.id.botao_aumentar13:
valorExibido[12]++;
String textoExibido13 = "" + valorExibido[12];
buttonsExibir.get(12).setText(textoExibido13);
break;
case R.id.botao_aumentar14:
valorExibido[13]++;
String textoExibido14 = "" + valorExibido[13];
buttonsExibir.get(13).setText(textoExibido14);
break;
case R.id.botao_aumentar15:
valorExibido[14]++;
String textoExibido15 = "" + valorExibido[14];
buttonsExibir.get(14).setText(textoExibido15);
break;
case R.id.botao_aumentar16:
valorExibido[15]++;
String textoExibido16 = "" + valorExibido[15];
buttonsExibir.get(15).setText(textoExibido16);
break;
}
}
});
contador2++;
}
}
public void methodResult() {
int totalPropriedadesExponenciais = valorBotao1 + valorBotao2 + valorBotao3 + valorBotao4 + valorBotao5 + valorBotao6 + valorBotao7 + valorBotao8 + valorBotao9 + valorBotao10 + valorBotao11 + valorBotao12;
int taxasTotaisSemPeso = valorBotao1*5 + valorBotao2*10 + valorBotao3*15 + valorBotao4*25 + valorBotao5*10 + valorBotao6*15 + valorBotao7*25 + valorBotao8*50 + valorBotao9*5 + valorBotao10*25 + valorBotao11*40 + valorBotao12*15;
int taxasTotaisExcessao = valorBotao13*5 + valorBotao14*10 + valorBotao15*15 + valorBotao16*25;
}
【问题讨论】:
-
您可以创建一个包含 16 个变量的类,这些变量将具有 getter 和 setter。然后将该类作为参数传递给 methodResult 并使用 getter 方法访问 16 个变量。
-
这个我试过了,但是参数在进入methodResult的时候就失去了值...
-
什么意思?它失去了它的价值?
-
仅作记录:如果您在编写 UI 时遇到此类问题,我有一种模糊的感觉,即最终用户体验不会真的很好。人们通常不喜欢有太多需要点击的 ui 元素...
标签: java android android-studio methods