2017-06-15 79 views
0

在我的Android應用程序中,我有一個帶有按鈕的操作欄。當我按下按鈕時,屏幕上出現三個下拉選項。當用戶按下其中一個按鈕時,我希望能夠運行代碼,例如運行功能或轉到其他活動。我的menu.xml格式如此,工作正常。我只是沒有辦法讓按鈕在你按下時做事情。單擊菜單下拉菜單後,如何運行代碼?

<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> 

回答

0

您的活動,重寫onOptionsItemSelected()方法,如下所示:

@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

首先使用覆蓋的方法,onCreateOptionsMenu(),膨脹你的菜單如下:

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

    return super.onCreateOptionsMenu(menu); 
} 

...和當點擊菜單項中的一個功能:

@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); 
}