2011-09-29 120 views
0

我想知道我是否可以保存一個Activity的兩個或多個實例,並可以根據我的要求使用這些實例。我可以在Android中保存活動的不同實例嗎?

比如我有兩個活動說一個& B.

我從活動一去到B通過檢查一些條件。 如果條件滿足活動B的第一個實例應該啓動另一個實例。

例如 - 在活動B我有一個窗體,它有一些EditTexts,一些CheckBOxes &窗體有兩個按鈕保存&取消。 如果用戶按下保存按鈕,以便進入活動A &,則將用戶填寫的所有表單數據發送到活動A.活動A顯示用戶填寫的所有數據。

但是當用戶再次進入活動B時,他應該看到用戶以前保存的所有字段。

再次來到活動B後,用戶修改數據或填充其他字段,而不是保存他按下取消按鈕進入活動A而不發送任何數據。

so活動A只顯示以前保存的數據沒有修改或額外的。

但是,當我再次去B,所以我應該只能看到用戶第一次保存的數據。

我想我可以通過使用SharedPrefernces來做到這一點。 但我想知道我可以保存活動B的兩個或更多實例,所以在條件基礎上我可以使用所需的一個。

回答

1

你不能真正在你提到的方法中保存Activity的一個實例。你的假設是正確的,即SharedPreferences是你完成任務的一種方式。

在您的示例中,我將讓Activity B始終從SharedPreferences中提取其表單數據。另外,當您點擊保存按鈕時,它會導致表單數據被保存到SharedPreferences中。最後,在活動A中,只要SharedPreferences可用,就會顯示數據。

如果您想知道活動B是否通過活動A中的保存或取消退出,則應該使用startActivityForResult啓動活動B.然後,在活動B中,在保存或取消按鈕的onClick處理程序中調用setResult。最後,活動A將在onActivityResult中獲得此結果。

+0

感謝您的回覆 – AB1209

+1

如果您覺得我回答了您的問題,請務必接受我的回答。如果沒有,也許你可以澄清你的問題多一點,所以我可以幫你。這就是說,如果你真的想要兩個「不同的」活動B的,那麼你可以做兩個單獨的活動。一個用於你提到的每種情況。 –

相關問題