2013-08-28 4 views
0

메뉴 버튼을 길게 누르면 전화기가 진동합니다. 메뉴 키를 길게 눌러서 어떤 행동을 취하는 법. 예를 들어, ChangeMyLang() 메소드. 그렇게 할 수 있습니까?메뉴 버튼 길게 누르기 동작

+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을 확인하십시오. 출발점으로, 당신의 ActionProvideronCreateActionView는 다음과 같이 보일 것 사용 (link) :

@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; 
    } 

편집 : 당신이 하드웨어 메뉴 버튼을 오버라이드 (override)에 대해

을 이야기하는 경우 , 당신은 할 수 있지만 귀하의 애플 리케이션에서만. 키 이벤트에 연결하는 방법에 대한 내용은 here을 참조하십시오.

+0

질문을 다시 읽고 시스템 메뉴 버튼 ("하드웨어"버튼)에 대해 이야기하고 있다는 것을 깨달았습니다. 그렇다면이 대답은 그와 아무 관련이 없습니다. 나는 당신이 '메뉴'버튼을 의미한다고 생각했다. –

관련 문제