2013-08-28 111 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

剛剛重讀你的問題,並意識到你可能會談論系統菜單按鈕(「硬件」按鈕)。如果是這樣,這個答案與此無關。我以爲你的意思是菜單按鈕。 –