2017-06-15 1 views
0

Dans mon application Android, j'ai une barre d'action avec un bouton dessus. Lorsque j'appuie sur le bouton trois options déroulantes apparaissent sur l'écran. Je veux être en mesure d'exécuter du code, comme exécuter une fonction ou aller à une autre activité, lorsque l'utilisateur appuie sur l'un des boutons. Mon menu.xml est formaté en tant que tel et fonctionne correctement. Je n'ai tout simplement pas le moyen de faire des choses quand vous appuyez dessus.Comment exécuter le code une fois que le menu déroulant a été cliqué?

<item 
    android:id="@+id/dropMenu" 
    android:title="" 
    app:showAsAction="always" 
    android:icon="@drawable/threedots"> 
    <menu> 
     <item 
      android:id="@+id/pastDays" 
      android:title="Past Days" /> 
     <item 
      android:id="@+id/aboutApp" 
      android:title="About App" /> 
     <item 
      android:id="@+id/setNotifications" 
      android:title="Set Notifications" /> 
    </menu> 
</item> 

Répondre

0

Dans votre activité, remplacer la méthode onOptionsItemSelected() comme suit:

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    if (item.getItemId()==android.R.id.home){ 
     mDrawerLayout.openDrawer(GravityCompat.START); 
    } 
    if (item.getItemId()==R.id.pastDays){ 
     //Do something 
    } 
    if (item.getItemId()==R.id.aboutApp){ 
     //Do something 
    } 
    if (item.getItemId()==R.id.setNotifications){ 
     //Do something 
    } 

    return super.onOptionsItemSelected(item); 
} 
0

Première utilisation de la méthode surchargée, onCreateOptionsMenu(), pour gonfler votre menu comme suit:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.menu, menu); // TODO: First param is your menu file 

    return super.onCreateOptionsMenu(menu); 
} 

... et pour la fonctionnalité quand l'un des éléments du menu est cliquée:

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case R.id.pastDays: 
      // TODO: Implement functionality here 

      break; 
     case R.id.aboutApp: 
      // TODO: Implement functionality here 

      break; 
     case R.id.setNotifications: 
      // TODO: Implement functionality here 

      break; 
    } 

    return super.onOptionsItemSelected(item); 
}