2013-02-02 31 views
0

這裏是我的問題:將活動A中的數據傳遞給Android中的活動D

活動A有en EditText。我需要從這個EditText上保存,以將其拉出活動d,3個活動下活動層次用戶的輸入,並把它扔進我已成立了有一個TextView。我嘗試了幾種方法,但都沒有工作。我遇到的例子實現了一些方法,如意圖中的Bundles,它將數據推送到層次結構中的下一個Activity。我相信這些方法不適合我,因爲我不得不將數據推送到層次結構更深的活動。有什麼建議麼?

+0

你使用包和意圖嘗試什麼?我們可能會給你一些提示,讓它正常工作。 –

回答

0

如果你想要去的路線捆綁,就可以不斷地通過你的活動層次傳遞相同的捆綁,或者從一個包中的數據存儲到下一個。你也可以使用SharedPreferences。這取決於數據是否需要在應用程序被終止時保留。

0

最簡單的事情將源自從您的應用程序的每個活動或服務入店SharedPreferences被利用。

您正在試圖傳送簡單的數據,所以這將是投入鍵值對非常簡單。

將數據保存到Sharedprefs只需鍵入,節省了用戶數據

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); 
SharedPreferences.Editor editor = prefs.edit(); 

editor.putString("key", "value"); 
editor.commit(); 

在活動希望檢索數據的活動,使用此:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); 
String userValue = prefs.getString("key", "ValueIfKeyDoesNotExist"); 

有當然更看關於SharedPreferences - 最好的源代碼是官方源碼SharedPreferences

你也可以嘗試使用像SQLite這樣的數據庫,但在你的案例中, ld被存儲起來非常簡單,所以DB的優點都不會被注意到。 Intent.putExtra()通過許多活動傳遞數據也不是很有用

0

如果它只是文本(EditText),您希望稍後將其拖動到TextView。我會考慮設置一個SQLite數據庫類來保存數據庫中的文本,然後將文本拖到任何Activity中的TextView。這裏是設置一個很好的鏈接:SQLite for Android

0

我會建議該數據庫是一個不錯的主意。不過,如果它是過度的,你可能會考慮一個自定義應用程序對象中的靜態變量(可能是一個列表或一張地圖)。添加一個機器人:「爲MyApplication」 name =屬性到您的清單應用元素,然後創建一個新的類,所有MyApplication,擴展應用。一旦你這樣做,活動A可以撥打:

((MyApplication) getApplication()).setUserText(editText.getText().toString()) 

...和活動d可致電:

editText.setText(((MyApplication) getApplication()).getUserText()). 

你必須制定出傳遞協議消息的symantics:發生了什麼如果D在A之前開始,依此類推,但是這會從一個地方到另一個地方得到字符串。

相關問題