[英]How to add strings into an arraylist from a previous Activity
如標題所示,我需要將一些字符串從當前活動(C)傳遞到在第一個活動(P)中創建的靜態ArrayList。 如果在進入第一個活動(P)之前旋轉屏幕(C),則先前活動(C)的所有字符串都將丟失,但是主活動ArrayList(P)仍然存在。 如果我在沒有任何狀態更改(旋轉)的情況下進行第一個Activity,則所有這些都將保存到靜態ArrayList中。 怎么了,為什么除了第一個(P)之外的所有數組列表(C)都丟失了?
這是在我的onCreate()方法中。
Bundle b = new Bundle();
b = getIntent().getExtras();
if (b != null) {
myList = b.getStringArrayList("list");
currentFile = b.getString("current");
previousFile = b.getString("previousFile");
}
我的代碼創建一個新的Activity:
Bundle b = new Bundle();
b.putString("current", currentFile);
b.putString("previousFile", getPreviousFile())
b.putStringArrayList("list", myList);
Intent i = new Intent(MainActivity.this, str);
i.putExtras(b);
startActivity(i);
每當旋轉屏幕時,活動都會被破壞並重新創建。 與調用this.recreate()相同。
為了避免這種情況,請在清單中的活動下進行定義:
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
例如:
<activity
android:name="com.app.example.MainActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:label="@string/app_name" >
您只真正需要屏幕的方向和屏幕尺寸,但是使用其他屏幕是個好習慣。
在清單中定義->示例:
android:name="pt.iscte.hff.activities.MainActivity"
android:label="@string/title_activity_main"
android:screenOrientation="portrait" >
或定義此MyProject /
分辨率/
布局/
main.xml
布局土地/
main.xml
http://developer.android.com/training/basics/supporting-devices/screens.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.