2013-08-06 63 views
0

我是一個新來的機器人,請幫助我以下。如何聲明一個可以被android中的所有類訪問的變量?

我有一個整數值,它存儲了一個選中的單選按鈕的ID。爲了驗證目的,我需要在我的應用程序的各個類中訪問此值。

請讓我知道如何聲明和訪問來自所有類的這個變量。

謝謝。

+0

http://developer.android.com/reference/android/app/Application.html – Raghunandan

+2

首先,複選框的ID在R.java文件中存儲,因此您可以從任何位置訪問它(不需要存儲它)。然後在每一個活動中,你可以:checkBox.isChecked()'看看它是否被選中,你不需要在任何地方存儲任何東西,只需聲明覆選框就像Checkbox checkBox =(CheckBox)findViewById(R.id. checkbox1);'並使用上面的函數。 – g00dy

回答

1

U可以使用:

MainActivity.class

Public static int myId; 

其他活動。

int otherId=MainActivity.myId; 
+0

謝謝geet,這對我有用 –

0

您可以在任何class.Like這個

class A{ 

     static int a; 
     } 

您可以在這樣其他類訪問您的聲明整型變量爲static和訪問。

class B{ 

    int b = A.a; 
    } 
1

下單例模式是做this.in的Java/Android的如果u一類創建一個實例每次都創建一個新的object.what你應該做的唯一方法是

1.create a model class and make its as singleton 
2.try to access the modelclass from every class 



public class CommonModelClass 
{ 
    private static CommonModelClass singletonObject; 
    /** A private Constructor prevents any other class from instantiating. */ 

    private CommonModelClass() 
    { 
     // Optional Code 
    } 
    public static synchronized CommonModelClass getSingletonObject() 
    { 
     if (singletonObject == null) 
     { 
      singletonObject = new CommonModelClass(); 
     } 
     return singletonObject; 
    } 


    /** 
    * used to clear CommonModelClass(SingletonClass) Memory 
    */ 
    public void clear() 
     { 
     singletonObject = null; 
     } 


    public Object clone() throws CloneNotSupportedException 
    { 
     throw new CloneNotSupportedException(); 
    } 

    //getters and setters starts from here.it is used to set and get a value 

    public String getcheckBox() 
    { 
     return checkBox; 
    } 

    public void setcheckBox(String checkBox) 
    { 
     this.checkBox = checkBox; 
    } 

} 

訪問其他類的模型類值 commonModelClass = CommonModelClass.getSingletonObject();

commonModelClass.getcheckBox(); http://javapapers.com/design-patterns/singleton-pattern/

+0

Checkbox checkBox =(CheckBox)findViewById(R.id.checkbox1);你可以在sigleton中存儲這個checkBox實例並通過應用程序訪問 – Ruban

+1

謝謝Ruban,我嘗試通過聲明整數爲public static int來訪問它,它工作正常。但我不知道你指定的技術。因此也要嘗試一下,謝謝。 –

+0

使用靜態也是一件好事。但首先實現單例模式會使你難以實現。但是如果你一旦使用它,那麼你會發現使用它的更多優勢 – Ruban

相關問題