對象我正在開發一個Android應用程序。 我有一些活動。我必須有一個可以從所有活動中獲得的物體。 任何想法如何組織它?全球Android應用
回答
使用全球Application
對象以下列方式:
package com.yourpackagename;
public class App extends Application {
}
在AndroidManifest.xml
:
<application android:name=".App">
要從Activity
訪問:
App globalApp = (App) getApplicationContext();
的App
類將是應用程序啓動時自動實例化。只要申請流程有效,它就可以使用。它可以作爲一個全球商店,您可以在其中放置自己的東西,並在整個應用程序生命週期中訪問它們。
我覺得這裏有一些拼寫錯誤,但我不知道要糾正哪些錯誤!:) – 2014-11-13 16:23:37
更正了錯別字。如果我缺少任何東西,請隨時發表評論。 – 2014-11-14 06:13:31
您的初始類定義是'GolbalObject',但您的用法是'GlobalObject' .. – 2014-11-14 14:22:32
有幾個方法可以做到這一點。如果你想分享的對象是一個String(或者很容易用String描述),我會推薦Shared Preferences。它用作在應用程序內共享數據的關鍵值存儲。
如果不是這種情況下(即一個字符串的適用性),你可以考慮將它作爲一個額外的與啓動您的各種活動的意圖。例如:
Intent newActivity = new Intent(CurrentActivity.class, ActivityToLaunch.class);
newActivity.putExtra("object_key", Bundle_With_Your_Object);
有關此策略的詳細信息(尤其是關於包類,如果你不熟悉),我會讀this Android doc。
您可以使用SharedPreferences在這種情況下:
添加或編輯:
SharedPreferences prefs = this.getSharedPreferences("Cusom Name", Activity.MODE_PRIVATE);
prefs.edit().putString("your_key", value).commit();
要清除:
SharedPreferences prefs = this.getSharedPreferences("Cusom Name", Activity.MODE_PRIVATE);
prefs.edit().clear();
中獲取價值:
SharedPreferences prefs = this.getSharedPreferences("Cusom Name", Activity.MODE_PRIVATE);
String value = prefs.getString("your_key", "");
首先,創建一個名爲MasterActivity類延伸活動,並確定您的全局對象。
public class MasterActivity extends Activity
{
public Object mObject;
}
然後,你必須與你的MasterActivity擴展您的主要活動類喜歡它:
// your main activity
public class MainActivity extends MasterActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// you can now use mObject in your main class
mObject.yourmethod();
}
}
通過這種方式,您將能夠簡單地通過擴展MasterActivity使用你的對象在所有的活動而不是活動。
什麼叫「全局對象」呢?如果你的意思是一類可在整個應用程序,然後再看看這個線程http://androidforums.com/developer-101/124278-global-objects.html – evilone 2012-03-16 06:21:02
在我的情況一定是某個類的一個對象。在所有的活動中,我必須使用這個對象的方法,將數據添加到對象的字段等等。 – mmmaaak 2012-03-16 13:18:14