2012-09-18 129 views
4

我想在我的項目中包含一個開源項目。但在檢查「是庫」選項之後,有些內容如「案例R.id.menu_search:」無法編譯。我是否應該用它的常數值來替換它們,或者如何包含它?Android庫項目中的資源ID

case R.id.menu_search: // ! case expressions must be constant expressions 
     onSearchRequested(); 
     return true; ... 
+0

將case更改爲if ... else語句。在eclipse中,當光標位於case關鍵字上時,可以通過按ctrl + 1來實現。 –

+0

if(id == R.id.menu_search){...}?但是,在檢查選項「是庫」之後,所有R.id.menu ...都不會被識別。 – thecr0w

+0

可以正確識別android.R.id.home的情況。 – thecr0w

回答

13

正如其他人所指出的那樣,你需要改變你的switch()聲明if()/else if()/else語句。 R.id.menu_search不是常數(static final),不能用於case語句。這是因爲R.id.menu_search來自您的Android庫項目。 android.R.id.home一個常數,因爲這是操作系統的一部分,並沒有改變。