将变量发送到OnTouch方法

时间:2012-09-19 17:29:34

标签: android ontouchevent

在此方法中,我将mode设置为1;

bTouch.setOnClickListener(new View.OnClickListener() {     
  public void onClick(View v) {
    mode1=1;
      Intent startGame = new Intent(
        "com.example.mygame.GFXSurface");
        startActivity(startGame);
  }
});

当我在onTouch方法的其他类中调用该模式时返回0

public boolean onTouch(View v, MotionEvent event) {
        // TODO Auto-generated method stub
    GameSurface gamesurface = new GameSurface(this);
    Mode mode2 = new Mode();
    mode= mode2.mode1; 
        if (mode == 1){        // this should be 1 but is 0
            x = event.getX();
            y = event.getY();

任何人都知道如何做到这一点的解决方案?

1 个答案:

答案 0 :(得分:1)

不,mode1值不是1,应该是0.

看看这两个代码行..

Mode mode2 = new Mode();
mode= mode2.mode1; 

现在来自1个代码行Mode mode2 = new Mode();

您正在创建新的Mode个对象mode2

根据类对象初始化规则,为新的Mode类分配一个内存。所以它的所有成员变量和字段都用新的mwmory初始化。

现在来到代码第2行

mode = mode2.mode1; 

您正在使用对象mode1访问新创建的班级Mode的{​​{1}}成员字段。

那么它如何能够保持旧值1? (再想一想)

mode2

将成员字段Now how can you access this value in other class? 设为静态,并直接使用类名称访问该字段,

喜欢,mode1

或者使用相同的对象来检索(get)mode1的值,您可以从中设置mode1的值。