2013-07-12 32 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

相关问题