Android - как отключить долгое нажатие на кнопку поиска (Nexus One) - PullRequest
2 голосов
/ 07 февраля 2010

В документации Android описано, как отключить функцию поиска в разделе «Деятельность»: public boolean onSearchRequested () { вернуть ложь; }

Это прекрасно работает при коротком нажатии на кнопку поиска на Nexus One. Тем не менее, он не отключает долгое нажатие, которое все еще отключает голосовой поиск.

Как отключить долгое нажатие Голосовой поиск?

Спасибо ...

Ответы [ 3 ]

6 голосов
/ 01 октября 2010

Я расширил ответ Стэна, чтобы отключить только длительные события нажатия.

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_SEARCH
        && (event.getFlags() & KeyEvent.FLAG_LONG_PRESS) == KeyEvent.FLAG_LONG_PRESS) {
        return true;
    }

    return super.onKeyDown(keyCode, event);
}
1 голос
/ 08 февраля 2011

В Android 2.0 вы можете сделать это:

@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_CALL) {
        // todo your code here
        return true;
    }
    return super.onKeyLongPress(keyCode, event);
}
1 голос
/ 01 октября 2010

Это не очень хорошая вещь для пользователей, но onKeyDown можно использовать, чтобы отключить как касание, так и длительное нажатие в Activity, как показано здесь:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_SEARCH) {
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...