Android - 如何为'this'声明变量?

时间:2016-01-17 08:15:02

标签: java android class 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'的变量。

我尝试了上面的代码,但它不起作用。

3 个答案:

答案 0 :(得分:2)

刚刚解决了新手问题...用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();
}

答案 1 :(得分:0)

在Java以及其他编程语言中,this引用类的当前实例,其类型与类类型相同。

答案 2 :(得分:0)

quitGame方法this.finishAffinity()内部无效,因为您位于onClickListener内,this将引用该侦听器。只需简单地使用MainActivity.this引用您的活动,然后调用此处。

public void quitGame(View v){
    MainActivity.this.finishAffinity();
}

将您的活动存储为成员变量并不是一个好主意。