Trabalhando com mais de um Activity
Em um aplicativo mvel geralmente trabalhamos com mais de uma janela. Para que isso seja
possvel, deve ser usadas as classes Intent e Bundle. A seguir ser demonstrado como passar
valores de um Activity a outro.
Criar projeto no ADT: prjCalculoArea
O activity_main.xml dever semelhante ao apesentado a seguir:
1. 11. 12. 21. 22. 27. 28.
32. android:text="@string/txtBtnTriangulo" /> 33. 34. 39. 40. 41. 42.
Agora dever ser criado o Activity que ir realizar o clculo da rea do Retngulo:
O activity_frm_calculo_retangulo.xml dever semelhante ao apesentado a seguir:
android:text="@string/txtBtnCalcular" />
Agora dever ser criado o Activity que ir realizar o clculo da rea do Tringulo:
O activity_frm_calculo_triangulo.xml dever semelhante ao apesentado a seguir:
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:gravity="center_vertical"
android:orientation="vertical" >
Finalmente dever ser criado o Activity que ir realizar o clculo da rea do Crculo:
O activity_frm_calculo_circulo.xml dever semelhante ao apesentado a seguir:
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:gravity="center_vertical"
android:orientation="vertical" >
Renomear o pacote principal para com.calculoarea.view:
Criar o pacote com.calculoarea.model em src:
Criar o pacote com.calculoarea.controller em src:
Criar a classe MedidasBean em com.calculoarea.controller:
package com.calculoarea.controller;
public class MedidasBean {
private double largura;
private double altura;
private double base;
private double raio;
public double getAltura() {
return altura;
}
public double getBase() {
return base;
}
public double getLargura() {
return largura;
}
public double getRaio() {
return raio;
}
public void setAltura(double altura) {
this.altura = altura;
}
public void setBase(double base) {
this.base = base;
}
public void setLargura(double largura) {
this.largura = largura;
}
public void setRaio(double raio) {
this.raio = raio;
}
}
Criar a classe CalculoArea em com.calculoarea.model:
package com.calculoarea.model;
import com.calculoarea.controller.MedidasBean;
public class CalculoArea {
public double areaRetangulo(MedidasBean mb) {
return mb.getLargura()*mb.getAltura();
}
public double areaTriangulo(MedidasBean mb) {
return (mb.getBase()*mb.getAltura())/2;
}
public double areaCirculo(MedidasBean mb) {
return (Math.PI*Math.pow(mb.getRaio(), 2));
}
}
Criar a classe CalculoAreaController em com.calculoarea.controller:
package com.calculoarea.controller;
import com.calculoarea.model.CalculoArea;
public class CalculoAreaController {
public double areaRetangulo(MedidasBean mb) {
return new CalculoArea().areaRetangulo(mb);
}
public double areaTriangulo(MedidasBean mb) {
return new CalculoArea().areaTriangulo(mb);
}
public double areaCirculo(MedidasBean mb) {
return new CalculoArea().areaCirculo(mb);
}
}
A classe com.calculadora.view.MainActivity, iremos deixar como a seguir:
public class MainActivity extends Activity {
Button btnRetangulo, btnTriangulo, btnCirculo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnRetangulo = (Button) findViewById(R.id.btnRetangulo);
btnTriangulo = (Button) findViewById(R.id.btnTriangulo);
btnCirculo = (Button) findViewById(R.id.btnCirculo);
btnRetangulo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(v.getContext(),
FrmCalculoAreaRetangulo.class);
startActivity(intent);
}
});
btnTriangulo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(v.getContext(),
FrmCalculoAreaTriangulo.class);
startActivity(intent);
}
});
btnCirculo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(v.getContext(),
FrmCalculoAreaCirculo.class);
startActivity(intent);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
A classe de clculo da rea do retngulo com.calculadora.view.
FrmCalculoAreaRetangulo, iremos deixar como a seguir:
public class FrmCalculoAreaRetangulo extends Activity {
EditText txtLargura, txtAltura;
Button btnCalcula;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_frm_calculo_retangulo);
txtLargura = (EditText) findViewById(R.id.txtARLargura);
txtAltura = (EditText) findViewById(R.id.txtARAltura);
btnCalcula = (Button) findViewById(R.id.btnARCalcula);
btnCalcula.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MedidasBean mb = new MedidasBean();
CalculoAreaController cac = new CalculoAreaController();
mb.setLargura(Double.parseDouble(String.valueOf(txtLargura.getText())));
mb.setAltura(Double.parseDouble(String.valueOf(txtAltura.getText())));
alerta(String.valueOf(cac.areaRetangulo(mb)));
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.frm_calculo_area_retangulo, menu);
return true;
}
public void alerta(String resultado) {
AlertDialog alertDialog = new AlertDialog.Builder(this)
.setTitle("rea do retngulo")
.setMessage(resultado)
.setCancelable(true)
.setIcon(R.drawable.ic_launcher)
.create();
alertDialog.show();
}
}
A classe de clculo da rea do tringulo com.calculadora.view.
FrmCalculoAreaTriangulo, iremos deixar como a seguir:
public class FrmCalculoAreaTriangulo extends Activity {
EditText txtBase, txtAltura;
Button btnCalcula;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_frm_calculo_triangulo);
txtBase = (EditText) findViewById(R.id.txtATBase);
txtAltura = (EditText) findViewById(R.id.txtATAltura);
btnCalcula = (Button) findViewById(R.id.btnATCalcula);
btnCalcula.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MedidasBean mb = new MedidasBean();
CalculoAreaController cac = new CalculoAreaController();
mb.setBase(Double.parseDouble(String.valueOf(txtBase.getText())));
mb.setAltura(Double.parseDouble(String.valueOf(txtAltura.getText())));
alerta(String.valueOf(cac.areaTriangulo(mb)));
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.frm_calculo_area_triangulo, menu);
return true;
}
public void alerta(String resultado) {
AlertDialog alertDialog = new AlertDialog.Builder(this)
.setTitle("rea do tringulo")
.setMessage(resultado)
.setCancelable(true)
.setIcon(R.drawable.ic_launcher)
.create();
alertDialog.show();
}
}
A classe de clculo da rea do crculo com.calculadora.view. FrmCalculoAreaCirculo,
iremos deixar como a seguir:
public class FrmCalculoAreaCirculo extends Activity {
EditText txtRaio;
Button btnCalcula;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_frm_calculo_circulo);
txtRaio = (EditText) findViewById(R.id.txtACRaio);
btnCalcula = (Button) findViewById(R.id.btnACCalcula);
btnCalcula.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MedidasBean mb = new MedidasBean();
CalculoAreaController cac = new CalculoAreaController();
mb.setRaio(Double.parseDouble(String.valueOf(txtRaio.getText())));
alerta(String.valueOf(cac.areaCirculo(mb)));
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.frm_calculo_area_circulo, menu);
return true;
}
public void alerta(String resultado) {
AlertDialog alertDialog = new AlertDialog.Builder(this)
.setTitle("rea do crculo")
.setMessage(resultado)
.setCancelable(true)
.setIcon(R.drawable.ic_launcher)
.create();
alertDialog.show();
}
}
Rodar o projeto na mquina virtual.