2012-09-19 2 views
0

이 방법에서는 mode를 1로 설정하고;OnTouch 메서드에 변수 보내기

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

아니, mode1 값은 그것이 있어야, 1없는 0

그냥

Mode mode2 = new Mode(); 
mode= mode2.mode1; 
1 개 코드 줄에서 지금

Mode mode2 = new Mode();

작성중인 ..이 두 개의 코드 라인을 보려면 새로운 클래스 Mode 오브젝트 mode2.

클래스 개체 초기화 규칙에 따라 새 Mode 클래스에 대한 메모리가 할당됩니다. 그래서 모든 멤버 변수와 필드는 새로운 mwmory로 초기화됩니다.

은 이제 객체 mode2와 새로 생성 된 클래스 Modemode1 멤버 필드에 액세스하는 코드 라인이

mode = mode2.mode1; 

에 온다.

어떻게 이전 값 1을 유지할 수 있습니까?

Now how can you access this value in other class? 

을 (다시) 생각 중 하나 정적 같은 멤버 필드 mode1을 직접 클래스 이름으로 필드를 액세스, 같은

, Mode.mode1

을 또는 (검색에 같은 개체를 사용하여 get) mode1의 값을 설정하는 mode1의 값.

+0

그래서 모드 클래스에서 mode1을 얻으려면 어떻게해야합니까? –