正如标题所说,我需要将当前Activity(C)中的一些字符串传递给在第一个Activity(P)中创建的静态ArrayList。如果我在到达第一个Activity(P)之前旋转屏幕(C),则前一个Activity(C)中的所有字符串都将丢失,但主Activity ListList(P)仍然存在。如果我在没有任何状态改变(旋转)的情况下进入第一个Activity,它将全部保存到静态ArrayList中。怎么了,为什么除了第一个(P)之外的所有arraylists(C)都丢失了?
这是我的onCreate()方法。
Bundle b = new Bundle();
b = getIntent().getExtras();
if (b != null) {
myList = b.getStringArrayList("list");
currentFile = b.getString("current");
previousFile = b.getString("previousFile");
}
我创建新活动的代码:
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);
答案 0 :(得分:0)
在Manifest中定义 - - 实施例:
android:name="pt.iscte.hff.activities.MainActivity"
android:label="@string/title_activity_main"
android:screenOrientation="portrait" >
OR
定义这个
我的项目/
RES /
布局/
main.xml中
布局土地/
main.xml中
http://developer.android.com/training/basics/supporting-devices/screens.html
答案 1 :(得分:0)
每当您旋转屏幕时,活动都会被销毁并重新创建。它与调用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" >
你只需要方向和屏幕,部分,但使用其他人是好的做法。