是这样的,我从A这个activity中转到B这个activity中同时根据A中的点击事件传递一个相应参数key过去。
在B这个activity中取出key值。
然后B这个activity对应的界面中有一个按钮,这个按钮要添加一个事件,
处理B中按钮事件的时候要根据参数key的值调用不同的处理方法。
于是,我就在B这个activity中写了一个事件监听器,由于key可能值比较多,所以我在监听器里面加了一个switch语句来根据不同的key调用不同的函数。
Having separate anonymous OnClickListener for each Button is taking up more memory. Casting View to Button is unnecessary. Using if-else when switch is possible is slower and harder to read. In Android's source you can often notice comparing the references by if-else:
大概意思就是说用if else来代替switch
这里外国人还提到,switch会运行的比if else慢并且难以阅读?不知道是以前c语言基础没学好还是什么的、、不过我记得老师是说的用switch是为了使结构更清晰和容易阅读
啊(苍天,what's wrong?)
再往后面看,我觉得我的key的可能值实在太多了点,用if else实在臃肿。于是后面有个man给出了这样的解决方法。
Or you can try the same but without listeners:
on your Button xml definition:
android:onClick="ButtonOnClick"
And in your code define the method ButtonOnClick:
public void ButtonOnClick(View v) {
switch (key{
case xx:
doSomething1();
break;
case xx:
doSomething2();
break;
......
}
}