2011-10-25 21 views
0

我可以使用活動一次(註冊活動),並使用後不同的活動切換主發射器?我可以使用活動一次(註冊活動),並將主發射器切換到不同的活動?

如果可以的話, 如果我在應用程序中創建的活動的一個參數x,我可以用在其他活動這個參數?...如果是的話,我怎麼能做到這一點另一個問題?

謝謝:)

+0

如果某個配置尚未創建或者類似的情況,您是否有理由不從主要活動調用註冊活動?通過將這些參數添加到調用的Intent的附加內容或使用SharedPreferences,可以爲多個活動使用相同的參數。 –

回答

1

不能動態地改變發射活動一次它必須是隻有1個是在清單文件中定義的活動。

我會推薦擁有類似着陸或飛濺活動的內容來檢查共享首選項變量,以決定要啓動哪個活動,例如登錄活動或其他活動。

您不應該從另一個活動訪問活動中的變量,您應該將這些變量存儲在數據保存類中。但是,如果你想這樣做,有一個很好的理由,簡單地說它是靜態的。

1

運行應用程序後無法調整清單。你可以做的是讓你的默認啓動器活動一旦運行一次就寫入SharedPreferences。在該活動內部,檢查是否已設置該首選項,並且如果它剛完成該活動並啓動新活動,則用戶將無法看到任何內容,只要在啓動器活動的onCreate中執行此操作即可。

至於在活動之間傳遞參數,您應該使用意向附加組件。例如,要傳遞字符串使用putExtra(String key, String value),並在新活動中使用getStringExtra("Key")獲取該參數。

0

對於可從不同活動訪問的全局變量,還可以擴展Application類,然後通過getApplicationContext()訪問它。

0

1.一次活動推出

你不能改變主發射器。這是一個靜態信息。你可以做的是以下幾點:

// in the beginning of onCreate 
// first launch could be loaded from shared preferences 
// see 2. for more 
if (!firstLaunch) { 
    // start another activity 
    finish(); 
    return; 
} 

2.在另一活動中使用的數據

一種方式是堅持數據並加載它在其他地方。您將在Data Storage article中找到所需的全部信息。

如果你的數據是原始的,你可以嘗試通過意圖傳遞給另一個活動。見Using integer from one class in another Android

如果它很複雜,你可以嘗試實現一個自己的Application類,並使用助手方法來訪問全局數據。見Android: Accessing resources without an Activity or Context reference
請小心,請閱讀Avoiding Memory Leaks article