2013-05-14 2 views
0

я здесь пример такого кода hereНажатие кнопки меню на физическом

public class Example1Activity extends Activity { 
private static final int ID_ADD = 1; 
private static final int ID_ACCEPT = 2; 
private static final int ID_UPLOAD = 3; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.example1); 

    ActionItem addItem  = new ActionItem(ID_ADD, "Add", getResources().getDrawable(R.drawable.ic_add)); 
    ActionItem acceptItem = new ActionItem(ID_ACCEPT, "Accept", getResources().getDrawable(R.drawable.ic_accept)); 
    ActionItem uploadItem = new ActionItem(ID_UPLOAD, "Upload", getResources().getDrawable(R.drawable.ic_up)); 

    //use setSticky(true) to disable QuickAction dialog being dismissed after an item is clicked 
    uploadItem.setSticky(true); 

    final QuickAction mQuickAction = new QuickAction(this); 

    mQuickAction.addActionItem(addItem); 
    mQuickAction.addActionItem(acceptItem); 
    mQuickAction.addActionItem(uploadItem); 

    //setup the action item click listener 
    mQuickAction.setOnActionItemClickListener(new QuickAction.OnActionItemClickListener() { 
     @Override 
     public void onItemClick(QuickAction quickAction, int pos, int actionId) { 
      ActionItem actionItem = quickAction.getActionItem(pos); 

      if (actionId == ID_ADD) { 
       Toast.makeText(getApplicationContext(), "Add item selected", Toast.LENGTH_SHORT).show(); 
      } else { 
       Toast.makeText(getApplicationContext(), actionItem.getTitle() + " selected", Toast.LENGTH_SHORT).show(); 
      } 
     } 
    }); 

    mQuickAction.setOnDismissListener(new QuickAction.OnDismissListener() { 
     @Override 
     public void onDismiss() { 
      Toast.makeText(getApplicationContext(), "Ups..dismissed", Toast.LENGTH_SHORT).show(); 
     } 
    }); 

    Button btn1 = (Button) this.findViewById(R.id.btn1); 
    btn1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      mQuickAction.show(v); 
     } 
    }) 

    Button btn2 = (Button) this.findViewById(R.id.btn2); 
    btn2.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      mQuickAction.show(v); 
      mQuickAction.setAnimStyle(QuickAction.ANIM_GROW_FROM_CENTER); 
     } 
    }); 
} 

Но я хочу сделать

mQuickAction.show(v); 

, когда пользователь нажимает на кнопку физического меню btn1. я хочу сделать, это меню только вызывается, когда пользователь нажимает на кнопку физического меню

ответ

1
public boolean onKeyUp(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_MENU) { 
     mQuickAction.show(this.btn1); 
     return true; 
    } 
    return super.onKeyUp(keyCode, event); 
} 
1

Если вы хотите, чтобы вызвать событие, когда нажмет клавишу физического меню, вы должны сделать:

public boolean onKeyUp(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_MENU) { 
     mQuickAction.show(this.getCurrentFocus());//or the view param that you want 
     return true; 
    } 
    return super.onKeyUp(keyCode, event); 
} 
+0

аварии Применение –

+0

сообщение The LogCat –

+0

Извините, но я не знаю, как использовать его. –

Смежные вопросы