如何将字符串添加到前一个Activity的arraylist中

时间:2014-04-28 22:11:25

标签: java android

正如标题所说,我需要将当前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);

2 个答案:

答案 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" >

你只需要方向和屏幕,部分,但使用其他人是好的做法。