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

Bry*_*eld 3 events android interface class

这是使用外部类的示例

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){...}
}
Run Code Online (Sandbox Code Playgroud)

这是匿名类的一个例子

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){...}
        }));
    }
}
Run Code Online (Sandbox Code Playgroud)

unc*_*ons 5

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

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

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