代码之家  ›  专栏  ›  技术社区  ›  Syamsoul Azrien

Android-如何为“this”声明变量?

  •  0
  • Syamsoul Azrien  · 技术社区  · 9 年前
    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”分配给一个名为“thisvariable”的变量。

    我尝试了上面的代码,但没有成功。

    3 回复  |  直到 9 年前
        1
  •  2
  •   Syamsoul Azrien    9 年前

    刚刚解决了新手问题…用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();
    }
    
        2
  •  0
  •   frogatto    9 年前

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

        3
  •  0
  •   cylon    9 年前

    在您的 quitGame 方法 this.finishAffinity() 因为你在 onClickListener this 将引用该侦听器。只需将您的活动与 MainActivity.this ,并完成此操作。

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

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