2016-01-03 47 views
0

我添加了一個導航抽屜到我的活動,它似乎工作正常。問題是我的工具欄上有另一個名爲info的圖標,它現在沒有響應。此信息項存在於我menu.xml文件文件:工具欄上的圖標沒有響應當導航抽屜添加

<item 
    android:id="@+id/info" 
    android:title="Info" 
    android:icon="@drawable/ic_info_outline_black_24dp" 
    android:orderInCategory="100" 
    app:showAsAction="always" /> 

我誇大這個菜單在我的Java代碼:

public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.action_bar_items, menu); 
    return true; 
} 

,並將其添加到我的onOptionsItemsSelectedMethod,其中還包含我的導航抽屜:

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()){ 
     case R.id.home:{ 
      if (drawerLayout.isDrawerOpen(drawerList)){ 
       drawerLayout.closeDrawer(drawerList); 
      }else{ 
       drawerLayout.openDrawer(drawerList); 
      } 
      return true; 
     }case R.id.info:{ 
      Toast.makeText(getApplicationContext(),"HEY",Toast.LENGTH_LONG).show(); 
     } 
     default:return super.onOptionsItemSelected(item); 
    } 
} 

圖標彈出在我的工具欄上,但沒有響應,當我點擊它。請幫忙。謝謝。

回答

2

ID需要保持consisten牛逼

XML您有:

的Java代碼
android:id="@+id/infoActionBar" 

,你正在尋找:

case R.id.info: 

變化這類原因,以匹配另一個。

編輯: 更換case R.id.home:case android.R.id.home:

+0

只是改變它。仍然沒有 –

+1

@MarkF我在一個項目中使用了代碼的所有三個片段,並且吐司顯示正確。可能需要更多信息來解決您的問題。 另外,你可能想用'case android.R.id.home:' – 6ameDev

+0

替換案例R.id.home:'是的,就是這樣。案件沒有被使用。謝謝。 –

0

在XML你的信息按鈕ID是android:id="@+id/infoActionBar"並試圖調用case R.id.info:所以請更改其中一個,然後再試一次:)

infoActionBarVSinfo

0

onOptionsItemSelected它必須是ID該項目不是標題的情況下item.getItemId()

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()){ 
     case R.id.home:{ 
      if (drawerLayout.isDrawerOpen(drawerList)){ 
       drawerLayout.closeDrawer(drawerList); 
      }else{ 
       drawerLayout.openDrawer(drawerList); 
      } 
      return true; 
     }case R.id.infoActionBar:{ 
      Toast.makeText(getApplicationContext(),"HEY",Toast.LENGTH_LONG).show(); 
     } 
     default:return super.onOptionsItemSelected(item); 
    } 
}