2013-11-01 4 views
1

액션 바 버튼에 두 개의 다른 기능을 실행하고 싶습니다. 하나는 "클릭"하고 다른 하나는 "길게 누르기"입니다. 예를 들자면 자동차 라디오처럼 작동해야합니다. 긴 프레스에 라디오 채널의 빈도를 저장하고 짧은 누르십시오.Android : 액션 버튼을 길게 누르십시오.

문제는 실제로 동작 단추에 사용자 지정 수신기가 없다는 것입니다. Google 제공 내용 :

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle presses on the action bar items 
    switch (item.getItemId()) { 
     case R.id.action_search: 
      openSearch(); 
      return true; 
     case R.id.action_compose: 
      composeMessage(); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 

긴 클릭으로 수신자를 호출 할 가능성이 있습니까?

답변

1

당신이 찾고있는 것은 OnLongClickListener입니다. LongClick을 실행했는지 여부를 부울 값으로 반환해야합니다.

같은 Button 객체에 두 개의 리스너를 추가해야합니다 :

button.setOnClickListener(new OnClickListener() { ... }); 
button.setOnLongClickListener(new OnLongClickListener() { ... }); 
+0

죄송합니다. 표시된 예제와 마찬가지로 MenuItens에는 리스너가 없습니다! –

+0

그래서 ActionBar 버튼에 대해 OnLongClick()을 찾고 있습니까? 나는 ActionBar가 더 많은 기능을 가지고있어 않아야한다고 믿는다. 그래서 어쩌면 당신은 쉬운 해결책을 찾지 못할 것이다. 당신이 원하는 것을하기 위해 당신의 UI를 재구성 해 보시지 않겠습니까? – Alxe

+0

@Alxe는 작업 표시 줄 항목에 LongClick을 사용하는 것이 최선의 해결책은 아니라고 말했습니다. 그러나 당신은 작업 표시 줄에 대한 사용자 지정보기를 만들 수 있으며 동일한 구현! –

0

당신은 작업 표시 줄의 사용자 정의보기를 생성하고 사용자 정의보기에 onLongClick을 구현할 수 있습니다.

+0

이것이 올바른 방법 일 것입니다! 저는 게으른 솔루션을 가져 와서 ActionBarMenu의 첫 번째 (긴 클릭) 함수를 구현하여 내 버튼을 설정하고 두 번째 함수 (짧은 클릭)가 ActionBar의 ActionButtons에있는 버튼을 호출하도록 함축했습니다. 고마워! –

관련 문제