Android - 如何为 'this' 声明一个变量?
Android - How to declare a variable for 'this'?
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 替换 class。
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
指的是class的当前实例,其类型与class类型相同。
在您的 quitGame
方法中 this.finishAffinity()
将不起作用,因为您在 onClickListener
中,并且 this
将引用该侦听器。只需简单地用 MainActivity.this
引用您的 activity,然后调用 finish。
public void quitGame(View v){
MainActivity.this.finishAffinity();
}
将你的 activity 存储为成员变量不是一个好主意。
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 替换 class。
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
指的是class的当前实例,其类型与class类型相同。
在您的 quitGame
方法中 this.finishAffinity()
将不起作用,因为您在 onClickListener
中,并且 this
将引用该侦听器。只需简单地用 MainActivity.this
引用您的 activity,然后调用 finish。
public void quitGame(View v){
MainActivity.this.finishAffinity();
}
将你的 activity 存储为成员变量不是一个好主意。