2013-07-12 35 views
0

我正在玩sherlockactionbar庫,存在一個問題,即向上按鈕無法在API 10上運行。向上圖標可以顯示在操作欄上,但它不會迴應我的緊迫感。在更高的API(例如16)上,它按預期運行,沒有問題。 我嘗試了幾個我遇到的解決方案,但都沒有工作。下面是其中之一。SherlockActionBar向上按鈕將無法在API 10上工作

switch (item.getItemId()) { 
    case android.R.id.home: 

    NavUtils.navigateUpTo(this, new Intent(this, test.class)); 
    return true; 

回答

0

請確保您有以下設置:

getSupportActionBar().setHomeButtonEnabled(true); 
getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

,並且您的開關在此方法:

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle item selection 
    super.onOptionsItemSelected(item); 

    switch (item.getItemId()) { 
    case android.R.id.home: 
     /* Do Something //*/ 
     return true; 
    default: 
     return false; 
    } 
} 
+0

其實,這是我的設置屏幕延伸SherlockPreferenceActivity。我剛剛發現,在4.xx設備中,你所要做的就是添加「getSupportActionBar()。setDisplayHomeAsUpEnabled(true);」,向上按鈕將起作用,不要包含「onOptionsItemSelected」來觀看android。 R.id.home或者它不會再工作。但相反,在較低的API設備(例如我的2.3.6)中,必須包含「getSupportActionBar()。setDisplayHomeAsUpEnabled(true)」和「NavUtils.navigateUpTo(this,new Intent(this,test.class));在「onOptionsItemSelected」中,以便轉到其父項。 –

+0

@TonyTong如果是這樣的話,那麼我認爲你最好的選擇是在通過開關之前調用「super.onOptionsItemSelected(MenuItem)」,而不是默認值。這樣它就可以用於早期版本。我假設ActionBarSherlock本身覆蓋了onOptionsItemSelected(MenuItem),所以我們應該調用超類。我會編輯我的答案。 – Tonithy

相關問題