21
Trabalhando com mais de um Activity Em um aplicativo móvel geralmente trabalhamos com mais de uma janela. Para que isso seja possível, 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

Trabalhando com mais de 01 activity

Embed Size (px)

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.