【发布时间】:2012-05-25 13:59:19
【问题描述】:
假设我正在使用一个 if 语句来解释十种不同的可能按钮按下,这些按钮会将事件值发送到事件侦听器:
public boolean onTouch(int v) { //this is my only listener for all ten buttons
if(event.getAction() == MotionEvent.ACTION_DOWN){
if(v==button_one){pool.play(bass1, 1f,1f, 1, 0, 1f);}
if(v==button_two){pool.play(bass2, 1f,1f, 1, 0, 1f);}
if(v==button_three){pool.play(bass3, 1f,1f, 1, 0, 1f);}
if(v==button_four){pool.play(snare1, 1f,1f, 1, 0, 1f);}
if(v==button_five){pool.play(snare2, 1f,1f, 1, 0, 1f);}
if(v==button_six){pool.play(snare3, 1f,1f, 1, 0, 1f);}
if(v==button_seven){pool.play(hh1, 1f,1f, 1, 0, 1f);}
if(v==button_eight){pool.play(hh2, 1f,1f, 1, 0, 1f);}
}
return false;
}
对这些进行分类会更有效吗?说... 一个用于军鼓的 onClick 事件,一个用于贝司的事件,一个用于踩镲的事件,这样当按下按钮时,程序不必计算每个 if 语句,只有在侦听器中的那个用于触发活动?
【问题讨论】:
-
我更喜欢这种方式,10 个不同的听众听这么简单的事情似乎太过分了。如果在找到按钮后未评估所有其他行,则您可能可以执行其他操作。
-
但是这样做,处理程序是否会调用其他元素中的
onTouch事件?
标签: java android performance button if-statement