2013-08-28 65 views
0

当我长按菜单按钮,手机振动。如何将长按菜单键连接到某个动作。例如,要更改MyLang()方法。是否有可能这样做?菜单按钮长按动作

+1

请看这里:http://stackoverflow.com/questions/10530517/override-menu-key-long-press-and-launch-an-application-on-long-press –

+0

你还在吗? –

回答

1

默认情况下,ActionBar项显示工具提示中的title属性。您无法覆盖此功能。但是,您可以创建自定义ActionProvider,您可以在其中设置View.OnLongClickListener

查看“ApiDemo”ActionBarSettingsActionProviderActivity。 (link)使用,作为一个起点,你ActionProvideronCreateActionView会是这个样子:

@Override 
    public View onCreateActionView() { 
     LayoutInflater layoutInflater = LayoutInflater.from(mContext); 
     View view = layoutInflater.inflate(R.layout.action_bar_custom_action_provider, null); 

     ImageButton button = (ImageButton) view.findViewById(R.id.button); 
     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       // Respond to normal click 
      } 
     }); 
     button.setOnLongClickListener(new OnLongClickListener() { 
      @Override 
      public boolean onLongClick(View v) { 
       // Respond to long-click 
       return true; 
      } 
     } 
     return view; 
    } 

编辑:

如果你在谈论覆盖硬件菜单按钮,你可以做到这一点,但只有在你的应用程序。请参阅here了解如何锁定关键事件的片段。

+0

刚刚重读你的问题,并意识到你可能会谈论系统菜单按钮(“硬件”按钮)。如果是这样,这个答案与此无关。我以为你的意思是菜单按钮。 –