public class MainActivity extends AppCompatActivity {
//the problem is here
private class this_Variable=this;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
}
public void quitGame(View v){
this_Variable.finishAffinity();
}
}
正如你所看到的上面的代码,我想将"this"分配给一个名为"this_variable"的变量。
我尝试了上面的代码,但它不起作用。
刚刚解决了新手问题...将类替换为 MainActivity。
public class MainActivity extends AppCompatActivity {
//the problem is here
private MainActivity this_Variable=this;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
}
public void quitGame(View v){
this_Variable.finishAffinity();
}
}
或者只是
public void quitGame(View v){
MainActivity.this.finishAffinity();
}
在Java和其他编程语言中,this
是指类的当前实例,其类型与类类型相同。
在你的
quitGame
方法中,this.finishAffinity()
不起作用,因为你在一个onClickListener
内,this
将引用该侦听器。只需简单地将您的活动与 MainActivity.this
,并就此调用完成。
public void quitGame(View v){
MainActivity.this.finishAffinity();
}
将活动存储为成员变量不是一个好主意。