Хмммм ... onLongKeyPress()
не похоже на KEYCODE_MENU
. Как раздражает.
Это похоже на работу с Nexus S (4.0.3) и Nexus One (2.3.6):
public class MenuKeyDetectorActivity extends Activity {
boolean wasLongPress=false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU) {
wasLongPress=wasLongPress | event.isLongPress();
}
return(false);
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU) {
Log.w("MKD", String.format("wasLongPress: %b", wasLongPress));
wasLongPress=false;
}
return(false);
}
}
В основном, отметьте, будет ли это длительное нажатие или нет в ваших onKeyDown()
вызовах, затем используйте эту информацию в onKeyUp()
, чтобы определить окончательное решение.