2014-08-30 83 views
0

是否可以在應用程序中獲取所有活動?我有一個全局整數變量,應該在每個活動的ActionBar中。我想是這樣的:如何更改另一活動的標籤(Android)

for (Layout/Activity l in (all activites)) { 
    l.setTitle(variable); 
} 

我已經與R.layout嘗試過,但對我來說這沒有工作。

我該怎麼做,或者是否有更好的方法來顯示我的變量在所有活動標籤?後來我想從全局變量的set方法中調用此代碼。

+0

只能同時激活(顯示)一項活動。你認爲你想做的事沒有任何意義。從每個活動更新操作欄或創建一個將更新操作欄的父活動類。擴展該課程中的所有活動 – 2014-08-30 21:42:16

+0

我的變量正在通過用戶交互進行更改。如果他打開另一個活動,則該活動欄應該是最新的。 我如何獲得積極的活動? – vtni 2014-08-30 21:44:47

+0

你也可以繼承應用程序的子類,並將變量存儲在那裏,如果來自任何活動則訪問。有關更多信息,請參閱http://stackoverflow.com/questions/708012/android-how-to-declare-global-variables – 2014-08-30 21:46:57

回答

0

是的,它可能與單身人士。 這是如何使用單:

這是Singleton類:

public class Singleton { 
     private static Singleton mInstance = null; 
     private String mTitle; 

     public void setmTitle(String mtitle){ 
     this.mTitle=mtitle 
     } 

     public String getmTitle(){ 
     return mTitle; 
     } 

     public static FilterArrayList getInstance(){ 
      if(mInstance == null) 
      { 
       mInstance = new FilterArrayList(); 
      } 
      return mInstance; 
     } 
    } 

這是第一個活動:

public class FirstActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Singleton.mInstance.setmTitle("This is Singleton"); 

    } 
} 

並在第二個活動:

public class SecondActivity extends Activity { 

    String Title; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main2); 


     Title=Singleton.mInstance.getmTitle(); 

    } 
} 
0

only one activity running at a time,所以你不能得到這種參考。

說,我認爲去它的方式是在某些類中創建一個int static variable,並從您的活動中調用它。

// SomeClass的

public static int xValue = 0; 

// ActivityOne || ActivityTwo || ActivityThree ...

String text = String.valueOf(SomeClass.xValue); 
SomeClass.xValue = 1; 

因爲它是一個公共靜態變量,你不需要任何實例化對象來獲取/設置的值,這將是從任何類入店。而且,只要它的類在內存中,這個值就可以被訪問,並且只有當類被卸載時纔會被破壞。