如何在不需要匿名类的情况下在对象上注册事件?

时间:2011-09-22 03:10:41

标签: java android oop

我正在创建一个Android应用程序。我有一个Dialog,我想在不使用匿名类的情况下处理onCancel()事件,因为它更干净,并且我需要从主Activity类访问类变量。我正在寻找一种方法来注册类似于.NET的对象上的事件,我可以在类中的单独方法中处理它,而不需要匿名类。

1 个答案:

答案 0 :(得分:3)

“事件监听器”部分中有一个很好的示例here

第一个示例为侦听器使用匿名类;第二个使用Activity内部的方法。不需要额外的课程。

TL; DR这是从该页面窃取的代码:

public class ExampleActivity extends Activity implements OnClickListener {
    protected void onCreate(Bundle savedValues) {
        ...
        Button button = (Button)findViewById(R.id.corky);
        button.setOnClickListener(this);
    }

    // Implement the OnClickListener callback
    public void onClick(View v) {
      // do something when the button is clicked
    }
    ...
}

您可以修改此项以使用onCancel()