Android事件:实现接口时,最好使用外部类或匿名类

时间:2011-01-20 17:33:53

标签: android events class interface

这是使用外部类

的示例
public class MyActivity extends Activity implements OnClickListener {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mylayout);
        findViewById(R.id.myid).setOnClickListener(this));
    }
    public void onClick(View v){...}
}

这是匿名类的一个例子

public class MyActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mylayout);
        findViewById(R.id.myid).setOnClickListener(new OnClickListener() {
            public void onClick(View v){...}
        }));
    }
}

1 个答案:

答案 0 :(得分:5)

在Android中,性能和效率是一个更重要的考虑因素。有些东西被认为是半生不熟的优化工作,有时在android中有意义。(就像我们不应该使用枚举而是java int枚举模式)。所以对你的问题的答案是。

如果必须注册多个onClick侦听器,请实现接口并在其中使用switch case。

如果您只需要在Click侦听器上注册一个,请使用匿名类。 (Android开发人员尽可能选择匿名类。限制范围;))