2013-02-04 20 views
1

的一個公共變量,在大多數的Android程序員使用的意圖或廣播接收器從一個類發送短文本消息到另一個類。意圖或直接訪問我注意到一個不同類

如果我使用一個工具類不擴展其他類像活動或服務,爲什麼不直接訪問實用程序類這樣的變量。

UtilityClass utility = new UtilityClass(); 
String gotIt = utility.theOtherVariable; // direct access to variable in other class 

這樣做有什麼問題嗎?我寧願這樣做,而不願意使用intent或broadcast接收器將實用程序類的小文本消息發送到Activity類。

編輯

除了類的實例,也可以讓你從一個活動傳遞到另一個靜態變量。在任何一種情況下,我都沒有看到使用額外的意圖或廣播接收器將信息從一個活動傳遞到另一個活動的任何價值。

回答

2

是的,當然你也可以使用即使它是您使用的是自己的數據結構很好的做法,但它是取決於需求和場景。 例如,假設您正在接收來自gps的數據,並且您需要在應用程序中的某些數據在5-6個位置,那麼設計一個類並將gps數據存儲在類的變量中並訪問它可以隨時隨地訪問你的方式

0

當然是它的好東西,使公共類,並保持你在那裏變量和函數作爲公開這樣你就可以在進一步activity.But,你都準備好知道這種類型的函數和變量均會使用使用一些活動。

哪裏原意是想好和簡單的方法來切換數據的一個活動,花葯activity.like如果你不想用一些變量多於單下一個活動,然後它會非常有用。更有意義的使用意圖是返回活動結果。就像如果你想執行動作,但它依賴於下一個活動,那麼Intent將用作強大的工具來實現你的任務。

簡明扼要:它是依靠需求。

0

試試這個,

UtilityClass utility = new UtilityClass(); 

初始化Utilityclass在你Activity。使用Utilityclass對象,你會得到你的utliityclass所有值。

實施例,

public class UtilityClass{ 
public static string gotIt = "value"; 
} 

public class MainActivity extends Activity { 
UtilityClass utility = new UtilityClass(); 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
     setContentView(R.layout.xml); 
String str = utility.gotIt; 
} 
相關問題