Trabalhando com mais de 01 activity

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

description

Android mais de um activity

Transcript of Trabalhando com mais de 01 activity

  • 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.