Кнопка автообновления? - PullRequest
0 голосов
/ 22 ноября 2011

У меня есть приложение, которое получает долготу и широту одним нажатием кнопки. Я хочу знать, как получить его, чтобы мне не нужно было нажимать кнопку каждый раз, когда я хочу обновить, чтобы увидеть местоположение. Я знаю, что могу отключить функцию кнопки, и она автоматически обновится, но мне нужно, чтобы она отображалась только при включенной кнопке. Есть ли способ, которым я могу обновить кнопку, не нажимая ее?

Ответы [ 2 ]

1 голос
/ 22 ноября 2011

Вместо того, чтобы кнопка вызывала функцию обновления, установите для нее логическое значение «isButtonPressed» в значение true. А затем, когда кнопка снова нажата (выключена), установите ее обратно в false. Затем где-нибудь в вашем приложении, которое вызывается постоянно (есть ли у вас игровой цикл? Функция обновления? Что-то в этом роде?), Сделайте следующее:

void Update() {
    if (isButtonPressed) {
        Refresh();
    }
}

Убедитесь, что для логического значения установлено значение false, установите для него значение true при нажатии кнопки, а затем установите для false значение при повторном нажатии кнопки. Вы можете сделать это так:

void ButtonPressedCallback() {
    isButtonPressed = !isButtonPressed;
}

Все это предполагает, что вы запускаете игру и у вас есть игровой цикл, или что у вас есть какая-то функция обновления, которая бесконечно вызывается в вашем приложении до ее выхода. Если нет, подумайте над тем, чтобы сделать что-то подобное в Android.

0 голосов
/ 22 ноября 2011
private Handler mHandler = new Handler() {
    @Override public void handleMessage(Message msg) {
        update(); // The refresh stuffs
        mHandler.sendMessageDelayed(Message.obtain(mHandler, -1), 1L); // wait
    }
}

При этом вам вообще не понадобится кнопка. По-моему, я не знаю, почему у вас есть кнопка, если вы не хотите ее нажимать ....

...