Как я могу реализовать две функции для одного нажатия кнопки на Android - PullRequest
0 голосов
/ 17 октября 2011

Привет, я работаю в Bluetooth в Android, у меня есть одно нажатие кнопки, которое выполняет 2 действия. При первом нажатии он должен выполнить возврат воздуха, а во 2-м щелчке он должен выполнить считывание заданного значения. но в моем коде выполняется только одно действие, и оно не переходит ко второму действию при втором щелчке. В моем коде есть только один обработчик для выполнения этих двух действий. Должен ли я иметь два обработчика для выполнения этих двух действий?

вот мой код: Это преформ первый клик:

private void returnair() { 
     //return air
     Log.d(TAG, "returnair()");
     setContentView(R.layout.dummy);
     load = (Button) findViewById(R.id.button1);
     load.setOnClickListener(new OnClickListener() {
         @Override
         public void onClick(View v) {
             String text = "16 16 36 01 10 00 00 00 00 00 00 00 00 00 00 00 00 88 47 ";
             sendMessage(text);
         }
     });
     mChatService = new blootoothchatservice(this, mHandler);
     mOutStringBuffer = new StringBuffer("");
}

Это выполняет 2-й клик:

private void setpoint() {
        //reading setpoint
        Log.d(TAG, "setpoint()");
        setContentView(R.layout.dummy); 
        load = (Button) findViewById(R.id.button1);
        load.setOnClickListener(new OnClickListener() {
             @Override
             public void onClick(View v) {
                 String resp = "16 16 36 07 02 00 00 00 00 00 00 00 00 00 00 00 00 B7 93 ";
                 sendsetresponses(resp);
             }
        });
        mChatService = new blootoothchatservice(this, mHandler);
        mOutStringBuffer = new StringBuffer("");
}

1 Ответ

7 голосов
/ 17 октября 2011

Как приложение узнает, нажали ли кнопки один или два раза? Вам необходимо сохранить, была ли запущена первая функция, а затем - вторая. Эту логику можно добавить к событию однократного щелчка, как показано ниже для псевдокода.

global int click = 0;

onClick() {
    if (click == 0) {
        click = 1;
        returnair();
    }
    else
        setpoint();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...