2012-03-08 4 views
5

주 응용 프로그램 클래스에서 사용자 지정 클래스를 만듭니다. 내 mainAccount라고 말해 보겠습니다.모든 활동에 사용할 전역 변수 선언

이제 저는 많은 활동을하고 있습니다. 나는 모든 활동에서 변수 mainAccount을 원한다. 어떻게 할 수 있을까? 한 가지 방법은 의도를 넣고 각 활동에 전달하는 것입니다. 글로벌 etC 만들기와 같은 더 좋은 방법이 있습니까?

최고 감사합니다.

답변

6

당신이 환경 설정을 사용하는 방법에 대한 생각 했습니까? 자세한 정보를 얻으려면 훌륭한 리소스가 필요합니다. http://mobile.tutsplus.com/tutorials/android/android-application-preferences/

또는 당신은 http://www.helloandroid.com/category/topics-covered/global-variables

+0

hmmm. 고마워, 그걸 찾고 있었어. –

+0

문제 없음. 그 첫 번째 링크는 또한 많은 다른 것들에 대한 훌륭한 정보를 가지고 있습니다. – mpeerman

6

찾아보기 Singleton classes. 기본적으로, 당신은 이런 것을 원합니다.

public class Singleton { 
    private static Singleton instance = null; 
    protected Singleton() { 
     // Exists only to defeat instantiation. 
    } 
    public static Singleton getInstance() { 
     if(instance == null) { 
     instance = new Singleton(); 
     } 
     return instance; 
    } 
} 

그런 다음 클래스에 액세스해야하는 모든 클래스에 대한 전화 :

Singleton var=Singleton.getInstance(); 

이 전역 변수의 부정적인 결과의 대부분을하지 않고, 본질적으로 세계입니다. 그것은 그 클래스의 하나의 객체 만 존재할 수 있지만 그것을 필요로하는 모든 사람들이 접근 할 수 있도록합니다.

4

액티비티에서 액세스하려는 변수와 메소드로 초록 클래스를 정의하면됩니다. 예를 들어

:

public abstract class BaseActivity extends Activity 
{ 
    //static variables 
    // static methods 
} 

지금 당신의 모든 활동이 BaseActivity 클래스를 확장 :

public class HelloAndroid extends BaseActivity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
    } 
} 
0
당신은 ("싱글"클래스, 또는 "정적"클래스를 사용하면 초기화 할 필요가없는 경우, 인스턴스화 할 수

또는 의해 demostrated로 응용 프로그램을 확장하는 클래스를 만들 수 있습니다 인터페이스 상속 또는 구현).

싱글 클래스 :

public class MySingletonClass { 

     private static MySingletonClass instance; 

     public static MySingletonClass getInstance() { 
      if (instance == null) 
       instance = new MySingletonClass(); 
      return instance; 
     } 

     private MySingletonClass() { 
     } 

     private String val; 

     public String getValue() { 
      return val; 
     } 

     public void setValue(String value) { 
      this.val = value; 
     } 
    } 

문자열의 = MySingletonClass.getInstance() getValue();.

정적 클래스 :

public class MyStaticClass { 
    public static String value; 
} 

문자열의 = MyStaticClass.value;