2012-08-28 3 views
1

여기에 문제가 있습니다. class를 말하자면 int x를 선택하는 버튼에 따라 1-6의 숫자로 변경됩니다. 클래스 2에서이 int를 호출 할 수 있어야합니다. 그러나 새 int x 값을 읽지는 않으며 기본값 만 읽습니다.다른 클래스에서 변경된 int 호출하기

public class class1 extends Activity { 
    private view btn1; 
    private view btn2; 
    //... 
    private view btn6; 
    public int x = 1; 

btn1.setOnClickListener(sbtn1Listener); 
//... 
btn2.setOnClickListener(sbtn2Listener); 

private View.OnClickListener sbtn1Listener = new View.OnClickListener() { 
    public void onClick(View v) { 
     x = 1; 
    } 
}; 
private View.OnClickListener sbtn2Listener = new View.OnClickListener() { 
    public void onClick(View v) { 
     x = 2; 
    } 
}; 
//... 

버튼이 프로그램에서 제대로 작동하므로 거기에 더 많은 것이 있지만 지금은 그만 두겠습니다. 그런 다음 class2는 새 값을 읽어야합니다. 대신 클래스 1에서 새 x 값을 읽는

public class class2 extends BaseObject { 
    public int y = 1; 

    class1 a = new class1(); 
    a.getx(); 

    y = a; 

    if (y == 1) { 
    }else if (y == 2){ 
    //... 

는 단지 또한 그것의 모두를 실행하는 BaseObject는이 켜지지 때문에 내가 Class2의의 확장 부분을 변경할 수 있습니다 1.

로 설정 기본값을 읽고 구성 요소.

답변

2

그게 전부는 Class2의 당신이 수업이 세계화, 다음을 통해 설정하면 1

은 무엇 당신이해야 할 것은 클래스 1

의 기존 인스턴스에 액세스입니다 클래스의 새 인스턴스를 생성하기 때문에 클래스 1에 액세스 할 수 있습니다.

public class class1 extends Activity { 
private view btn1; 
private view btn2; 
//... 
private view btn6; 
public int x = 1; 
public class2 cls2; // SET GLOBAL. Needs initialising somewhere relevant. 

btn1.setOnClickListener(sbtn1Listener); 
//... 
btn2.setOnClickListener(sbtn2Listener); 

private View.OnClickListener sbtn1Listener = new View.OnClickListener() { 
public void onClick(View v) { 
    x = 1; 
    cls2.x = 1; // Or use setter methods in class 2. 
} 
}; 
private View.OnClickListener sbtn2Listener = new View.OnClickListener() { 
public void onClick(View v) { 
    x = 2; 
    cls2.x = 2; 
} 
}; 

그런 다음 클래스 2에는 x라는 공용 변수가 있습니다. (당신은 클릭 리스너에서 설정하는 하나의 중요

:. 당신은 클래스 2 전화 이제까지 있는지 확인 새 인스턴스를 글로벌 인스턴스로 할당, 그리고

2

int x a static variable.

을 확인합니다.

예 :

public static int x = 1; 

지금 ...이 같은 다른 클래스에서 액세스

int y = class1.x; 

// 변경된 x 값이 반영됩니다.

관련 문제