2012-03-08 27 views
5

Tôi đang tạo một lớp tùy chỉnh trong lớp ứng dụng chính. Cho phép nói My mainAccount.Khai báo biến toàn cục để sử dụng trong mọi hoạt động

Bây giờ, tôi đang tạo nhiều hoạt động. Tôi muốn mainAccount biến trong mọi hoạt động, làm cách nào tôi có thể làm điều đó? Một cách là đặt ý định và chuyển cho từng hoạt động. Có cách nào tốt hơn, như làm cho nó toàn cầu etC?

Trân trọng

Trả lời

6

bạn đã bao giờ nghĩ về việc sử dụng các ưu đãi? Tài nguyên tuyệt vời để biết thêm thông tin. http://mobile.tutsplus.com/tutorials/android/android-application-preferences/

Hoặc bạn có thể tạo ra một lớp mở rộng ứng dụng như demostrated bởi http://www.helloandroid.com/category/topics-covered/global-variables

+0

hmmm. Vâng, cảm ơn, tôi đã tìm kiếm điều đó. –

+0

Không vấn đề gì. Liên kết đầu tiên đó cũng có thông tin tuyệt vời về nhiều thứ khác. – mpeerman

6

Tra cứu Singleton classes. Về cơ bản, bạn muốn một cái gì đó như thế này.

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; 
    } 
} 

Sau đó, đối với bất kỳ lớp học mà cần truy cập vào lớp, gọi:

Singleton var=Singleton.getInstance(); 

Đây là bản chất toàn cầu, mà không hầu hết các hậu quả tiêu cực của biến toàn cục. Nó sẽ đảm bảo rằng chỉ có một đối tượng của lớp đó có thể tồn tại, nhưng tất cả những ai cần nó có thể truy cập nó.

4

Chỉ cần xác định một lớp học Tóm tắt với các biến và phương thức đó bạn muốn truy cập trong các hoạt động.

Ví dụ:

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

Bây giờ mở rộng lớp BaseActivity này trong tất cả các hoạt động của bạn:

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

Bạn có thể sử dụng lớp "singleton", hoặc lớp "tĩnh" (nếu bạn không cần phải khởi tạo nó, nhanh chóng hoặc kế thừa hoặc thực hiện các giao diện).

Singleton lớp:

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; 
     } 
    } 

String s = MySingletonClass.getInstance() getValue();.

lớp tĩnh:

public class MyStaticClass { 
    public static String value; 
} 

String s = MyStaticClass.value;

Các vấn đề liên quan