PDA

Ver la Versión Completa : [ CONSULTA ] Estoy haciendo una calculadora android, pero tengo un problema


DetestedMarce
10/03/15, 08:38:51
Hola chicos, estoy haciendo una calculadora de android, por ahora todo me va bien, pero me piden que las multiplicaciones se vayan concatenando, es decir, que no sean de dos numeros solo, el codigo es el siguiente


public class Calculadora extends ActionBarActivity {

boolean sum=false;
boolean res=false;
boolean div=false;
boolean mul=false;
double num[]=new double[20];
double resul=0;


override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_calculadora);

Button n0=(Button) findViewById(R.id.button0);
Button n1=(Button) findViewById(R.id.button1);
Button n2=(Button) findViewById(R.id.button2);
Button n3=(Button) findViewById(R.id.button3);
Button n4=(Button) findViewById(R.id.button4);
Button n5=(Button) findViewById(R.id.button5);
Button n6=(Button) findViewById(R.id.button6);
Button n7=(Button) findViewById(R.id.button7);
Button n8=(Button) findViewById(R.id.button8);
Button n9=(Button) findViewById(R.id.button9);

Button sum=(Button) findViewById(R.id.sumar);
Button res=(Button) findViewById(R.id.restar);
Button mul=(Button) findViewById(R.id.multi);
Button div=(Button) findViewById(R.id.dividir);
Button igual=(Button) findViewById(R.id.igual);
Button borrar=(Button) findViewById(R.id.eliminar);
}


public void onClick(View v){
TextView pantalla=(TextView) findViewById(R.id.textView);
int selec= v.getId();
String a = pantalla.getText().toString();


try {
switch (selec) {
case R.id.button0:
pantalla.setText(a+"0");
break;
case R.id.button1:
pantalla.setText(a+"1");
break;
case R.id.button2:
pantalla.setText(a+"2");
break;
case R.id.button3:
pantalla.setText(a+"3");
break;
case R.id.button4:
pantalla.setText(a+"4");
break;
case R.id.button5:
pantalla.setText(a+"5");
break;
case R.id.button6:
pantalla.setText(a+"6");
break;
case R.id.button7:
pantalla.setText(a+"7");
break;
case R.id.button8:
pantalla.setText(a+"8");
break;
case R.id.button9:
pantalla.setText(a+"9");
break;
case R.id.sumar:
sum=true;
num[0]=num[0]+num[1];
num[0]=Double.parseDouble(a);
pantalla.setText("");
break;
case R.id.restar:
res=true;
num[0]=num[0]-num[1];
num[0]=Double.parseDouble(a);
pantalla.setText("");
break;
case R.id.multi:
mul=true;
num[0]=num[0]*num[1];
num[0]=Double.parseDouble(a);
pantalla.setText("");
break;
case R.id.dividir:
div=true;
num[0]=num[0]/num[1];
num[0]=Double.parseDouble(a);
pantalla.setText("");
break;
case R.id.igual:
num[1]=Double.parseDouble(a);
if(sum==true){
resul=num[0]+num[1];
pantalla.setText(String.valueOf(resul));
}else if(res==true){
resul=num[0]-num[1];
pantalla.setText(String.valueOf(resul));
}else if(mul==true){
resul=num[0]*num[1];
pantalla.setText(String.valueOf(resul));
}else if(div==true){
resul=num[0]/num[1];
pantalla.setText(String.valueOf(resul));
}
sum=false;
res=false;
mul=false;
div=false;

break;
case R.id.eliminar:
String del=pantalla.getText().toString();
int num=del.length()-1;
String c="";
for(int i=0; i<num;i++) {
c=c+del.charAt(i);
}
pantalla.setText(c);
break;
}
}catch (Exception e){
pantalla.setText("Fallo");
}
}

override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_calculadora, menu);
return true;
}

override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();

//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}

return super.onOptionsItemSelected(item);
}
}



No os pido que me lo resolvais, aunque seria un detalle , es broma, pero si que me ayudarais para ver que hacer para resolver el problema.
Gracias de antemano :cucu:

wolfcat90
10/03/15, 09:24:37
Si me puedes subir las sources lo estudiaría tranquilamente. No te preocupes, no te voy a robar la idea, ya hay muchas calculadoras para Android, pero es un buen proyecto para empezar a programar :)