我有一个活动,只有一个按钮退出活动.
通过layout.xml我必须将OnClick事件设置为cmd_exit并调用’this.finish()’工作正常
public void cmd_exit(View editLayout){
this.finish();
}
,但是当我添加一个OnClickListener时
cmd_exit = (Button) this.findViewById(R.id.cmd_ExitApp);
cmd_exit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
this.finish()给出了错误.它必须只是finish().
我知道finish()存在于Activity类中,所以我的问题是它是如何在第二个片段中工作的?
解决方法:
当您将OnClickListener创建为匿名类时,this关键字引用该侦听器实例而不是封闭类.您可以使用YourActivityClassName.this.您也可以省略这一点,因为OnClickListener没有finish()方法,所以将使用Activity 1.
标签:java,oop,android,inner-classes,onclicklistener
来源: https://codeday.me/bug/20190608/1199036.html