View
216
Download
2
Category
Preview:
DESCRIPTION
Android mais de um activity
Citation preview
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.
Recommended