2013-11-24 53 views
0

在ABS中,我使用Home作为后退按钮或向上导航。现在我有一个要求,如果用户长时间长时间按住操作栏中的家庭/向上按钮指示灯,我需要显示主屏幕。对于正常按下,向上按钮将作为回流。我没有找到任何特定的方法来覆盖。目前我正在处理onOptionsItemSelected。Android ActionBarSherlock检测主菜单项上的长按

试图在StackOverflow中进行搜索。没有找到任何可靠的例子。

更新: 我尝试使用下面的代码,但在这种情况下,一次点击不工作的设备。尽管在模拟器中,两次点击都能正常工作。任何提示?

View homeItem = findViewById(android.R.id.home); 
    if(homeItem!=null){ 
     Log.d("homemenuitem","got it"); 
     View homeParent = (View)homeItem.getParent(); 
     homeParent.setOnLongClickListener(new View.OnLongClickListener() { 

      @Override 
      public boolean onLongClick(View v) { 
       // TODO Auto-generated method stub 
       Log.d("homemenuitem","long click got it"); 
       return true; 
      } 
     }); 

    } 

回答

0

我让它谢谢你的示例代码。 您可能不再需要解决方案,但我想为其他人编写该解决方案。 :-)

您只需编辑一条线:

View homeParent = (View)homeItem.getParent().getParent();

其实,视图的LinearLayout包含主页图标和标题的TextView。 它至少适用于API LV14,但我不知道其他版本。 (根据API LV,ActionBar的视图层次可能会有所不同)