Разве я не могу воспроизвести один звук нажатием нескольких кнопок? - PullRequest
0 голосов
/ 08 февраля 2012
    @Override
public void onClick(View v) {
    if(v.getId()==R.id.cvp11 && v.getId()==R.id.cvp22 && v.getId()==R.id.cvp32)
        yc.start();
    else if(v.getId()==R.id.cvp12 && v.getId()==R.id.cvp21 && v.getId()==R.id.cvp31)
        dc.start();

}

Без добавления или утверждений, он воспроизводит звук с помощью нажатий кнопок cvp11 и cvp12, но я хочу также воспроизводить этот звук с помощью других нажатий кнопок. Однако, когда я пишу так, ни один из них не воспроизводится при нажатии каждой кнопки.В чем дело?Thx.

Ответы [ 2 ]

1 голос
/ 08 февраля 2012

Я думаю, что вместо && (логический оператор И) вы намеревались сделать || (логический оператор ИЛИ):

public void onClick(View v) {
    if(v.getId()==R.id.cvp11 || v.getId()==R.id.cvp22 || v.getId()==R.id.cvp32)
        yc.start();
    else if(v.getId()==R.id.cvp12 || v.getId()==R.id.cvp21 || v.getId()==R.id.cvp31)
        dc.start();
}

Конечно, для форматирования и удобства использования ответ switch от @dmytrodanylyk - более элегантный способ сделать это.

1 голос
/ 08 февраля 2012

Попробуйте это:

switch(v.getId())
{
 case R.id.cvp11:
 case R.id.cvp22:
 case R.id.cvp32:
 yc.start();
 break;

 case R.id.cvp12:
 case R.id.cvp21:
 case R.id.cvp31:
 dc.start();
 break;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...