我的活动中有很多按钮,我有以下问题:
我应该为每个按钮为OnClickListeners创建多个内部匿名类,如下所示:
private View.OnClickListener mShuffleListener = new View.OnClickListener() {
public void onClick(View v) {
/// task to do
}
};
或者我应该去指定一个内部类并添加一个if条件来检查调用哪个点击监听器。
哪一个更好地节省内存资源?
答案 0 :(得分:7)
保存内存资源哪一个很酷?
几乎没有任何区别。最多1个字......这就是将静态内部类与(非静态)匿名类进行比较。如果您有数百个这些按钮,那么保存尽可能小的代码就不值得代码可读性/可维护性损失,甚至(IMO)。
答案 1 :(得分:2)
处理事件有三种方法。请查看以下链接
请参阅以下内容以了解匿名类和内部类的使用
匿名课程
如果您不想使用代码,请使用匿名内部类 在其他任何地方(这个类正在这里使用,而不是其他地方。)
内部课程
可以使用内部类代码(如果仅使用创建它的类) 私有)。如果你看到一个命名的内部类,有人可能会想 它会在课堂上的多个地方使用。
答案 2 :(得分:1)
我通常更喜欢更精细的方法,这使得在使用onClick侦听器时代码更容易阅读
对于属性菜单中的几乎所有小部件都有一个名为onClick的属性(也可以在布局xml中找到),在那里你可以编写方法名称Ex xyz
现在转到你的java源文件,你只需编写一个方法 前
public void xyz(View v)
{
//your code goes here
}
并且你已经完成。如果你真的想要使用内部类,那么如果你担心内存,则使用匿名的内存(如果存储的每个引用是一个引用类型,在这种情况下,它将占用8个字节的内存)。
希望这有帮助..请问您是否需要更多说明