Tutorial Forca #3 - Tela inicial e ação dos botões

Bom pessoal, dando continuidade ao tutorial, vamos fazer agora a tela inicial e a ligação entre as telas, para vocês já irem vendo o app funcionar.
Primeiro vamos alterar a tela inicial (activity_main.xml), deixando-a conforme segue abaixo:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    <Button
        android:id="@+id/bSair"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="50dp"
        android:layout_marginLeft="85dp"
        android:layout_marginRight="85dp"
        android:text="Sair" />
    <Button
        android:id="@+id/bStart2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_above="@id/bSair"
        android:layout_marginLeft="35dp"
        android:layout_marginRight="35dp"
        android:text="2 Jogadores" />
    <Button
        android:id="@+id/bStart1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_above="@id/bStart2"
        android:layout_marginLeft="35dp"
        android:layout_marginRight="35dp"
        android:text="1 Jogador" />
    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_centerHorizontal="true"
        android:layout_above="@id/bStart1"
        android:layout_margin="30dp"
        android:src="@drawable/forca_0" />
    <ImageView
        android:id="@+id/ivConfig"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentBottom="true"
        android:layout_marginLeft="20dp"
        android:layout_marginBottom="20dp"
        android:src="@drawable/config" />
</RelativeLayout>

Já fiz a adição de algumas imagens a mais que serão utilizadas mais para frente. Elas podem ser baixadas aqui e colocadas todas naquela pasta res/drawable criada no post anterior.
A tela deve ficar mais ou menos assim:


Vamos alterar a nossa activity principal agora (MainActivity) retirando o trecho que cria o menu, que não será necessário para nós e adicionando as ações dos botões que criamos, deixando o arquivo assim:

package br.com.blogspot.androidandrekunde.forcalite;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button bStart1 = (Button) findViewById(R.id.bStart1);
        Button bStart2 = (Button) findViewById(R.id.bStart2);
        Button bSair   = (Button) findViewById(R.id.bSair);
        bStart1.setOnClickListener(this);
        bStart2.setOnClickListener(this);
        bSair.setOnClickListener(this);
    }

    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.bStart1:
            Intent i = new Intent(MainActivity.this, GameActivity.class);
            startActivity(i);
            break;
        case R.id.bStart2:
            // Vamos apenas "mapear" este click por enquanto
            Toast.makeText(getApplicationContext(), "2 Jogadores", Toast.LENGTH_SHORT).show();
            break;
        case R.id.bSair:
            finish();
        }
    }
}
Logo no começo da Activity, eu implementei o método OnClickListener, pois acho que fica um pouco mais fácil de lidar com as ações dos botões.
Com a ação do botão para iniciar o jogo implementada, precisamos criar a classe GameActivity que é onde o jogo rodará.
Vou apenas criar a classe nesta etapa, e na próxima vou implementar as ações dela. Ela vai ficar mais ou menos assim:
package br.com.blogspot.androidandrekunde.forcalite;

import android.app.Activity;
import android.os.Bundle;

public class GameActivity extends Activity {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_game);
    }
}
Depois disso, basta apenas declará-la no AndroidManifest e é para estar mostrando as duas telas já.
<activity android:name=".GameActivity" />
Para quem quiser baixar o projeto todo, acesse aqui.
 Até a próxima pessoal!!
Ah... se tiverem alguma dúvida/sugestão é só postar aí! Valeu!

Sobre o autor

André Luís Batista Kunde
Técnico em Informática (2004), Bacharel em Administração com ênfase em Marketing (2009), buscando ser Engenheiro de Software, Trabalhando com software educacional e me aventurando pelo mundo da programação mobile.

5 comentários:

  1. Este comentário foi removido pelo autor.

    ResponderExcluir
  2. criei um botão dessa forma, mas quando rodo no AVD o aplicativo e clico no botão aparece "Unfortunately has stopped" . Por que isso está ocorrendo?

    ResponderExcluir
    Respostas
    1. Provavelmente você criou o botão na view que não está mapeada

      Excluir
  3. Provavelmente você criou o botão na view que não está mapeada.

    ResponderExcluir
  4. O Projeto não esta mais disponivel para download, poderia disponibilizar novamente ?

    ResponderExcluir

Copyright © 2013 Aprendendo Android and Blogger Themes.