這裏是我的問題:將活動A中的數據傳遞給Android中的活動D
活動A有en EditText。我需要從這個EditText上保存,以將其拉出活動d,3個活動下活動層次用戶的輸入,並把它扔進我已成立了有一個TextView。我嘗試了幾種方法,但都沒有工作。我遇到的例子實現了一些方法,如意圖中的Bundles,它將數據推送到層次結構中的下一個Activity。我相信這些方法不適合我,因爲我不得不將數據推送到層次結構更深的活動。有什麼建議麼?
這裏是我的問題:將活動A中的數據傳遞給Android中的活動D
活動A有en EditText。我需要從這個EditText上保存,以將其拉出活動d,3個活動下活動層次用戶的輸入,並把它扔進我已成立了有一個TextView。我嘗試了幾種方法,但都沒有工作。我遇到的例子實現了一些方法,如意圖中的Bundles,它將數據推送到層次結構中的下一個Activity。我相信這些方法不適合我,因爲我不得不將數據推送到層次結構更深的活動。有什麼建議麼?
如果你想要去的路線捆綁,就可以不斷地通過你的活動層次傳遞相同的捆綁,或者從一個包中的數據存儲到下一個。你也可以使用SharedPreferences。這取決於數據是否需要在應用程序被終止時保留。
最簡單的事情將源自從您的應用程序的每個活動或服務入店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()通過許多活動傳遞數據也不是很有用
如果它只是文本(EditText),您希望稍後將其拖動到TextView。我會考慮設置一個SQLite數據庫類來保存數據庫中的文本,然後將文本拖到任何Activity中的TextView。這裏是設置一個很好的鏈接:SQLite for Android
我會建議該數據庫是一個不錯的主意。不過,如果它是過度的,你可能會考慮一個自定義應用程序對象中的靜態變量(可能是一個列表或一張地圖)。添加一個機器人:「爲MyApplication」 name =屬性到您的清單應用元素,然後創建一個新的類,所有MyApplication,擴展應用。一旦你這樣做,活動A可以撥打:
((MyApplication) getApplication()).setUserText(editText.getText().toString())
...和活動d可致電:
editText.setText(((MyApplication) getApplication()).getUserText()).
你必須制定出傳遞協議消息的symantics:發生了什麼如果D在A之前開始,依此類推,但是這會從一個地方到另一個地方得到字符串。
你使用包和意圖嘗試什麼?我們可能會給你一些提示,讓它正常工作。 –