quinta-feira, 18 de fevereiro de 2016

Android - Transição de tela entre Activities


Neste exemplo prático estarei exibindo nos fontes como é feito um transição entre duas telas a MainActivity.java e a SecondActivity.java.

Funcionalidade:
 Clicar em qualquer lugar da tela e trocar para segunda tela.

 1) Passo: Adicione no seu layout no meu caso é o RelativeLayout o "android:onClick" do arquivo (activity_main.xml) para que tenhamos o evento de clique. Obtendo um trecho de xml semelhante ao seguinte:

<?xml version="1.0" encoding="utf-8"?>
<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" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:onClick="choiceScreen"
android:background="@color/backgroudapp">

...

 2) Crie sua próxima classe Java com seu respectivo layout, neste caso criamos a SecondActivity.java e o layout second_activity.xml;

public class SecondActivity extends AppCompatActivity {
    @Override    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second_activity);
    }
}

  3) Passo: Adicione sua tela no arquivo AndroidManifest.xml conforme exemplo abaixo:

    <activity android:name=".MainActivity" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".SecondActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
  
 4) Passo: Na MainActivity.java escreva um método com nome definido no passo anterior neste caso android:onClick="choiceScreen". Obtendo um método semelhante a esse :

 public class MainActivity extends AppCompatActivity {
    @Override    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void choiceScreen(View view){
        Intent intent = new Intent(MainActivity.this, SecondActivity.class);
        MainActivity.this.startActivity(intent);
    }
}

Basta rodar a aplicação e você terá a transição da tela MainActivity para a SecondActivity.

BÔNUS : Dica rápida e fácil, cadastrar um cor padrão para o sistema, basta adicionar no arquivo colors.xml a tag <color name="backgroudapp">#303F9F</colordepois de feito isso basta usa-la desta maneira android:background="@color/backgroudapp">