2017-06-26 1 views
0

J'ai l'activité ActivityProfile, ai getSupportActionBar().setDisplayHomeAsUpEnabled(true); mis en œuvre, onBackPressed() ainsi, recherche partout sur Internet et toujours aucune aide.OnBackBressed pas appelé

@Override 
    public void onBackPressed() { 
     Toast.makeText(this, "OnBackpressed fired", Toast.LENGTH_SHORT).show(); 
     super.onBackPressed(); 
    } 

    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) 
    { 
     //replaces the default 'Back' button action 
     if(keyCode== KeyEvent.KEYCODE_BACK) { 
// something here 
      onBackPressed(); 
     } 
     return true; 
    } 

à l'aide bouton revenir en arrière de l'appareil, mais pas sur l'application ...

+0

Pas de son sur le bouton de retour sur la barre d'outils, je pourrais avoir facilement eu dans le cadre du menu de trop-plein, mais mon patron et le concepteur, il veut comme un bouton de retour sur la barre d'outils. –

Répondre

-3

salut ajouter ce code dans votre activité. lorsque vous appuyez sur le bouton de retour dans la barre d'outils après le code exécuter.

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.your_view); 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    getSupportActionBar().setHomeButtonEnabled(true); 
} 


@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()){ 
     case android.R.id.home: 
      finish(); 
      break; 
     default: 
      return super.onOptionsItemSelected(item); 

    } 
    return super.onOptionsItemSelected(item); 
} 
+0

Ajoutez des détails sur les raisons pour lesquelles cela résoudra le problème. – Dayan

+1

Encore une fois, vous devriez expliquer vos changements et pourquoi ils devraient donner le résultat désiré. Les vidages de code sont rarement bons que ce soit des questions ou des réponses. – codeMagic

+0

cela ne fonctionnera pas dans l'OS ci-dessus 5.0 –

0

vous devez utiliser onOptionItemSelected pour gérer cliquez sur le fond sur la barre d'action:

@Override 
public boolean onOptionsItemSelected(MenuItem item) 
{ 
    switch (item.getItemId()) 
    { 
    case android.R.id.home: 
     finish(); 
     return true; 
    default: 
     return super.onOptionsItemSelected(item); 
    } 
} 
+0

donc l'ID de la maison est explicitement défini par la bibliothèque de conception ou quoi? –

+0

Mode de navigation standard. Se compose d'un logo ou d'une icône et d'un texte de titre avec un sous-titre optionnel. En cliquant sur l'un de ces éléments va envoyer onOptionsItemSelected à l'activité de l'hôte avec un MenuItem avec l'ID de l'article android.R.id.home. https://developer.android.com/reference/android/support/v7/app/ActionBar.html – Meikiem

0

Essayez cette

setSupportActionBar(toolbar); 
toolbar.setNavigationOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       onBackPressed(); 
      } 
     }); 
0

Cela devrait fonctionner

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    int id = item.getItemId(); 

    if (id == android.R.id.home) { 
     onBackPressed(); 
    } 

    return super.onOptionsItemSelected(item); 
} 
1

Pour mettre en œuvre Up navigation, déclarez un parent de cette partic ular activity dans manifest et setDisplayHomeAsUpEnabled comme vrai.

<activity 
     android:name="com.example.myfirstapp.DisplayMessageActivity" 
     android:label="@string/title_activity_display_message" 
     android:parentActivityName="com.example.myfirstapp.MainActivity" > 
     <!-- Parent activity meta-data to support 4.0 and lower --> 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="com.example.myfirstapp.MainActivity" /> 
    </activity> 

En savoir plus https://developer.android.com/training/implementing-navigation/ancestral.html