Aplicando o padrão Home as Up na ActionBar do ANDROID

A partir do ANDROID  4.1 (API nível 16), é possível declarar o “pai” de uma Activity da seguinte forma:

Adicionando android:parentActivityName  na tag <activity>, no arquivo AndroidManifest.xml.

Para aplicativos que suportam Android 4.0 ou inferior, e incluem a Biblioteca de suporte, é preciso adicionar a tag <meta-data> dentro da tag <activity> . Em seguida, é preciso especificar a Activity “pai” como o valor de android.support.PARENT_ACTIVITY , combinando com o atributo android:parentActivityName.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<application ... >
    ...
    <!-- The main/home activity (it has no parent activity) -->
    <activity
        android:name="com.example.myapp.MainActivity" ...>
        ...
    </activity>
    <!-- A child of the main activity -->
    <activity
        android:name="com.example.myapp.DisplayMessageActivity"
        android:label="@string/title_activity_display_message"
        android:parentActivityName="com.example.myapp.MainActivity" >
        <!-- Parent activity meta-data to support 4.0 and lower -->
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.example.myapp.MainActivity" />
    </activity>
</application>

 

Agora adicione o botão de ação na ActionBar (a seta):

1
2
3
4
5
@Override
public void onCreate(Bundle savedInstanceState) {
    ...
    getActionBar().setDisplayHomeAsUpEnabled(true);
}

A ação de clique será tratada no método onOptionsItemSelected:

1
2
3
4
5
6
7
8
9
10
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    // Id correspondente ao botão Up/Home da actionbar
    case android.R.id.home:
        NavUtils.navigateUpFromSameTask(this);
        return true;
    }
    return super.onOptionsItemSelected(item);
}

 

Fonte: http://helpdev.com.br/2014/03/25/android-implementando-corretamente-o-botao-voltar-na-actionbar-providing-up-navigation/

Anúncios